澄清一下,我使用的是Python 2.7
我需要检查"x"是否是整数(例如 7(,或者"x"是否是小数点末尾只有一个零的浮点数(例如 7.0(。我有一个格式,所以我需要的帮助就是代码。
x = raw_input("Please enter a number: ")
if type(x) == int or __________ :
return True
else:
return False
我的目标是,如果你插入 5 或 5.0,它将返回 True,但如果你插入 6.7,它将返回 False。
下划线(空格(是我需要添加代码的地方。我尝试了许多不同的尝试,但都失败了。
啊,要是浮点数有"is_integer"这样的方法就好了......
一个非常简单的测试,它之所以有效,是因为 Python 整数的分辨率是无限的:
return float(x) == int(float(x))
raw_input
的结果不是一个数字,而是一个字符串。这就是为什么它必须首先转换为float
。
假设你有一个值 r,这是一个浮点数/实数,
r = 3.33333
那么当 are 是浮点数/实数(非整数(时,下面的值为非零,
f = r - int(r)
print r -int(r)
但是,正则表达式可能是一个更通用的解决方案,因为您可以搜索匹配的 \d*.\0*[1-9]{1} 作为浮点数,以及 \d+.?0* 被解释为整数。