在Python中确定一个数字是整数还是小数。
下面的情况用示例代码解释。
- 判断一个数字是整数int还是浮点数float:
isinstance()
- 判断一个浮点数是否为整数(小数点后0位)。:
float.is_integer()
- 判断一个数字字符串是否为整数
要获得一个小数的整数和小数的值,请看以下文章。
关于确定一个字符串是否为数字(包括中文数字等)而不是整数或小数的信息,请参见以下文章。
确定一个数字是整数还是浮点类型: 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类型的值,在转换为float后应用is_integer()方法,并返回结果。
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
关于将字符串转换为数字的细节,请参见下面的文章。
关于确定一个字符串是否为数字(包括中文数字等)的细节,请参见以下文章。