在Python中确定一个数字是整数还是小数

商业

在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

关于将字符串转换为数字的细节,请参见下面的文章。

关于确定一个字符串是否为数字(包括中文数字等)的细节,请参见以下文章。