Python 将非整数转换为整数

Python 将非整数转换为整数,python,integer,Python,Integer,对不起,前面有任何含糊不清的地方。我需要测试给定变量是否为整数(如果存在差异,则数学定义不是整数的python定义)。我目前正在使用这个函数 isinstance([var],(int,long)) 当给定2作为变量(var)时,它将打印true。但是,如果给定2.0,则打印为False 这是一个问题,因为我需要一个函数来响应2.0,2.00,2.000和任何数值等于整数的数字都是整数。在回答数字不相等的数字(1.4、3.14、2.7等)是非整数时,我是否可以使用任何函数或特定代码来实现这一点

对不起,前面有任何含糊不清的地方。我需要测试给定变量是否为整数(如果存在差异,则数学定义不是整数的python定义)。我目前正在使用这个函数

isinstance([var],(int,long))

当给定2作为变量(var)时,它将打印true。但是,如果给定2.0,则打印为False

这是一个问题,因为我需要一个函数来响应2.0,2.00,2.000和任何数值等于整数的数字都是整数。在回答数字不相等的数字(1.4、3.14、2.7等)是非整数时,我是否可以使用任何函数或特定代码来实现这一点


注意:我相信,根据之前的反馈,“pythonically”2.0实际上并不是一个整数。即使如此,从数学上讲,函数必须返回它原来的状态

为什么不将其转换为int

>>> int(2.00)
2
我知道请求原谅比请求原谅容易 python中的权限,但在这种情况下是必需的

当然,你可以在这里请求原谅而不是允许。首先假设您有一个整数,如果不是,请请求原谅并重复

while True:
    try:
        value = int(raw_input()) 
        break
    except ValueError:
        pass
但是,如果您仍然希望
请求权限
,您可能更希望以以下方式使用isinstance,假设浮点可以转换为整数

isinstance(2.0,(int,long, float))

也许我在第一次回答时误解了这个问题。如果您试图区分7.00和7.01,您可以使用如下内容,这将达到一定的精度:

def likeint(value):
    return value - int(value) == 0


>>> likeint(8.0)
True
>>> likeint(7.0000000001)
False
>>> likeint(7.0000000000)
True
>>> likeint(7)
True

你读过吗?你是否有机会直接使用
eval(原始输入('Enter a integer:'))
input('Enter a integer:')
来评估用户的输入?为什么这个问题不清楚?我不明白。函数“isinstance(var,(int,long,float))”正是我所需要的!非常感谢。