Xác định xem một số là số nguyên hay số thập phân trong Python.
Các trường hợp sau được giải thích bằng mã mẫu.
- Xác định xem một số là số nguyên int hay số thực dấu phẩy động:
isinstance()
- Xác định xem một số kiểu float là một số nguyên (0 chữ số thập phân):
float.is_integer()
- Xác định xem một chuỗi số có phải là số nguyên hay không
Để có được giá trị nguyên và thập phân của một số thập phân, hãy xem bài viết sau.
Xem bài viết sau để biết thông tin về cách xác định xem một chuỗi là một số (bao gồm cả chữ số Trung Quốc, v.v.) thay vì xem nó là một số nguyên hay số thập phân.
Xác định xem một số là kiểu số nguyên hay dấu phẩy động:isinstance()
Kiểu của một đối tượng có thể được lấy bằng kiểu hàm tích hợp ().
i = 100
f = 1.23
print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>
isinstance(object, type)
Chức năng tích hợp này có thể được sử dụng để xác định xem một đối tượng có thuộc một kiểu cụ thể hay không. Điều này có thể được sử dụng để xác định xem một số là kiểu số nguyên hay dấu phẩy động.
print(isinstance(i, int))
# True
print(isinstance(i, float))
# False
print(isinstance(f, int))
# False
print(isinstance(f, float))
# True
Trong trường hợp này, nó chỉ đánh giá kiểu, vì vậy nó không thể đánh giá liệu giá trị kiểu float có phải là số nguyên (với dấu thập phân là 0) hay không.
f_i = 100.0
print(type(f_i))
# <class 'float'>
print(isinstance(f_i, int))
# False
print(isinstance(f_i, float))
# True
Xác định xem một số kiểu float là một số nguyên (0 chữ số thập phân):float.is_integer()
Phương thức is_integer () được cung cấp cho kiểu float, phương thức này trả về true nếu giá trị là số nguyên và false nếu ngược lại.
f = 1.23
print(f.is_integer())
# False
f_i = 100.0
print(f_i.is_integer())
# True
Ví dụ, một hàm trả về true cho một số nguyên có thể được định nghĩa như sau Mặt khác, kiểu chuỗi sẽ là false.
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
Xác định xem một chuỗi số có phải là số nguyên hay không
Nếu bạn muốn xác định rằng một chuỗi các chữ số nguyên cũng là một số nguyên, thì các hàm sau đây có thể thực hiện được.
Đối với các giá trị có thể được chuyển đổi thành kiểu float với float (), phương thức is_integer () được áp dụng sau khi chuyển đổi thành float và kết quả được trả về.
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
Xem bài viết sau để biết chi tiết về chuyển đổi chuỗi thành số.
Xem bài viết sau để biết chi tiết về cách xác định xem một chuỗi có phải là một số hay không (bao gồm cả chữ số Trung Quốc, v.v.).