ตรวจสอบว่าตัวเลขเป็นจำนวนเต็มหรือทศนิยมใน Python หรือไม่
กรณีต่อไปนี้จะอธิบายด้วยโค้ดตัวอย่าง
- กำหนดว่าตัวเลขเป็นจำนวนเต็มหรือจำนวนเต็มทศนิยม:
isinstance()
- กำหนดว่าจำนวนประเภททศนิยมเป็นจำนวนเต็ม (ทศนิยม 0 ตำแหน่ง) หรือไม่:
float.is_integer()
- กำหนดว่าสตริงตัวเลขเป็นจำนวนเต็มหรือไม่
ในการรับค่าจำนวนเต็มและทศนิยมของจำนวนทศนิยม ให้ดูบทความต่อไปนี้
ดูบทความต่อไปนี้สำหรับข้อมูลเกี่ยวกับการพิจารณาว่าสตริงเป็นตัวเลข (รวมถึงตัวเลขจีน เป็นต้น) แทนที่จะเป็นจำนวนเต็มหรือทศนิยม
- ที่เกี่ยวข้อง:Python กำหนดและตรวจสอบว่าสตริงเป็นตัวเลขหรือตัวอักษร
กำหนดว่าตัวเลขเป็นจำนวนเต็มหรือประเภททศนิยม:isinstance()
ประเภทของอ็อบเจกต์สามารถรับได้ด้วยฟังก์ชัน type() ในตัว
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
ฟังก์ชันในตัวนี้สามารถใช้เพื่อกำหนดว่าอ็อบเจ็กต์เป็นประเภทใดประเภทหนึ่งหรือไม่ สามารถใช้เพื่อกำหนดว่าตัวเลขเป็นจำนวนเต็มหรือประเภททศนิยม
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
ในกรณีนี้ จะตัดสินเฉพาะประเภท ดังนั้นจึงไม่สามารถตัดสินว่าค่าประเภททศนิยมเป็นจำนวนเต็ม (ที่มีจุดทศนิยม 0) หรือไม่
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
กำหนดว่าจำนวนประเภททศนิยมเป็นจำนวนเต็ม (ทศนิยม 0 ตำแหน่ง) หรือไม่:float.is_integer()
is_integer() มีให้สำหรับประเภท float ซึ่งจะคืนค่า จริง หากค่าเป็นจำนวนเต็มและเป็นเท็จ
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
ตัวอย่างเช่น ฟังก์ชันที่คืนค่า จริง สำหรับจำนวนเต็มสามารถกำหนดได้ดังนี้ ในทางกลับกัน ประเภทสตริงจะเป็นเท็จ
def is_integer_num(n):
if isinstance(n, int):
return True
if isinstance(n, float):
return n.is_integer()
return False
print(is_integer_num(100))
# True
print(is_integer_num(1.23))
# False
print(is_integer_num(100.0))
# True
print(is_integer_num('100'))
# False
กำหนดว่าสตริงตัวเลขเป็นจำนวนเต็มหรือไม่
หากคุณต้องการตรวจสอบว่าสตริงของตัวเลขจำนวนเต็มเป็นจำนวนเต็มด้วย ฟังก์ชันต่อไปนี้เป็นไปได้
สำหรับค่าที่สามารถแปลงเป็นประเภท float ด้วย float() เมธอด is_integer() จะถูกนำไปใช้หลังจากการแปลงเป็น float และผลลัพธ์จะถูกส่งกลับ
def is_integer(n):
try:
float(n)
except ValueError:
return False
else:
return float(n).is_integer()
print(is_integer(100))
# True
print(is_integer(100.0))
# True
print(is_integer(1.23))
# False
print(is_integer('100'))
# True
print(is_integer('100.0'))
# True
print(is_integer('1.23'))
# False
print(is_integer('string'))
# False
ดูบทความต่อไปนี้สำหรับรายละเอียดเกี่ยวกับการแปลงสตริงเป็นตัวเลข
- ที่เกี่ยวข้อง:แปลงสตริงตัวเลข str เป็นจำนวน int ลอยใน Python
ดูบทความต่อไปนี้สำหรับรายละเอียดเกี่ยวกับการพิจารณาว่าสตริงเป็นตัวเลขหรือไม่ (รวมถึงตัวเลขจีน เป็นต้น)
- ที่เกี่ยวข้อง:Python กำหนดและตรวจสอบว่าสตริงเป็นตัวเลขหรือตัวอักษร