Python 中检查变量是否为整数

Manav Narula 2023年1月30日 2021年3月21日
  1. 使用 isinstance() 方法检查对象是否为 Python 中的 int 类型
  2. 使用 int() 方法检查对象是否为 Python 中的 int 类型
  3. 使用 float.is_integer() 方法检查对象是否为 Python 中的 int 类型
Python 中检查变量是否为整数

在 Python 中,当处理数字时,我们有不同的数据类型。这些是 intfloatcomplex 数据类型。

int 数据类型用于表示整数。在本教程中,我们将讨论如何检查变量是否为 int

在 Python 中,我们通常检查 type() 函数以返回对象的类型。例如,

x = 10
print(type(x))
print(type(x) == int)

输出:

<class 'int'>
True

此方法可能正常工作,但会阻止多态性的所有灵活性。例如,如果我们将对象子类化为 int 并希望将其注册为 int,那么 type() 函数可能会失败。

下面的代码演示了这一点。

class def_int(int): pass
x = def_int(0)
print(type(x))
print(type(x) == int) 

输出:

<class '__main__.def_int'>
False

使用 isinstance() 方法检查对象是否为 Python 中的 int 类型

因此,建议在传统的 type() 上使用 isinstance() 函数。isinstance() 函数用于检查对象是否属于指定的子类。以下代码段将说明我们如何使用它来检查 int 对象。

y = 10
class def_int(int): pass
x = def_int(0)
print(isinstance(y,int))
print(isinstance(x,int)) 

输出:

True
True

建议使用抽象基类 numbers.Integral,而不是具体的 int 类。这样,我们可以检查 intlong,甚至可以检查用户定义的可以用作整数的方法。

使用 int() 方法检查对象是否为 Python 中的 int 类型

我们也可以使用 int 函数创建一个简单的逻辑来实现这一目标。对于要成为 int 的对象,该对象应等于将该对象传递给该对象时由 int() 函数返回的值。下面的代码演示了这一点。

x = 10.05

if(int(x)==x):
    print('True')
else:
    print('False')

输出:

False

使用复杂对象时,此方法将返回 Type-error。

使用 float.is_integer() 方法检查对象是否为 Python 中的 int 类型

此方法仅适用于 float 对象。它检查 float 对象中的值是否为整数。例如,

x = 10.0
print(float.is_integer(x))

输出:

True
Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Integer