我想创造条件,而数字必须是整数。当x == 1.0时,x == int(x)没有帮助... 谢谢。
答案 0 :(得分:9)
isinstance(x, (int, long))
isinstance
测试第一个参数是否是第二个参数指定的一个或多个类型的实例。我们指定(int, long)
来处理Python自动切换到long
以表示非常大的数字的情况,但如果您确定要排除int
,则可以使用long
秒。有关详细信息,请参阅docs。
至于为什么1.0 == 1
,因为1.0
和1
代表相同的数字。 Python不要求两个对象具有相同的类型,以使它们被认为是相同的。
答案 1 :(得分:1)
在python上不大,但我用它来检查:
i = 123
f = 123.0
if type(i) == type(f) and i == f:
print("They're equal by value and type!")
elif type(i) == type(f):
print("They're equal by type and not value.")
elif i == f:
print("They're equal by value and not type.")
else:
print("They aren't equal by value or type.")
返回:
They're equal by value and not type.
答案 2 :(得分:0)
检查它是否为整数。
>>> def int_check(valuechk, valuecmp):
if valuechk == valuecmp and type(valuechk) == int:
return True
else:
return False
>>> int_check(1, 1)
True
>>> int_check(1.0, 1)
False
答案 3 :(得分:0)
Python将整数值转换为其实等值,然后检查两个值,因此在检查值对等时答案为true,但如果在检查类型对等则答案为false。