在Python3.7中检查输入是否为整数会产生错误

在Python3.7中检查输入是否为整数会产生错误,python,python-3.x,Python,Python 3.x,我试图检查输入是否为整数。但代码在我给出的每一个输入中都重复地说“其他东西”。代码有问题吗 x = input("enter:") if type(x) == int: print("int") else: print("something else") 注意,正如评论所说,这里的x是一个字符串,所以您首先要将该字符串转换为一个数字,然后检查它是否是一个整数 您可能还希望将其包装在一个try块中,以捕获不是数字的字符串等。type(input())将始终是str。注意,type

我试图检查输入是否为整数。但代码在我给出的每一个输入中都重复地说“其他东西”。代码有问题吗

x = input("enter:")
if type(x) == int:
    print("int")
else:
    print("something else")
注意,正如评论所说,这里的x是一个字符串,所以您首先要将该字符串转换为一个数字,然后检查它是否是一个整数


您可能还希望将其包装在一个try块中,以捕获不是数字的字符串等。

type(input())
将始终是
str
。注意,
type('123')是str
type(123)是int
IntoAbhi,只需按照问题上方出现的链接进行操作即可。祝贺你的第一个问题,继续提问,不要因为结束而拖延。欢迎来到社区。@TasosPapastylianou我相信我能想出一个更好的复制品。还是复制品。编辑:完成;)@IntoAbhi这是一个重复,但请注意,你没有得到任何反对票(目前)。所以结果可能会更糟:)现在不要在注释中粘贴完整的代码,你的注释已经足够了。阅读提供的两个链接,你就会得到它。最上面的评论回答了你的问题。“输入”的输出将始终是字符串类型。因此它不是int类型。因此,if语句总是失败。为什么
float
?为什么不是通常的方法,
尝试:int(x)除了:ValueError:…
(顺便说一句,我没有否决投票)int对于float将失败如果您不想对float抛出错误,而只是以不同的方式对待它们。否则int()也可以。不要担心落选的人,我想人们只是想结束这个问题,而且对这个问题相当挑剔。就个人而言,我不认为它是重复的,因为用户在逻辑上有不同的问题和潜在的错误,尽管有共同的最终目标,所以我不会删除,以防它对他们有帮助。我投了反对票,因为这只处理看起来像浮点的字符串,因为浮点表示限制在许多情况下会导致不正确的输出(输入由1000 1s组成?False。输入为9999999999999999.999?True。),因为如果您首先执行“这看起来像int”检查,您可能不希望允许输入带有小数点。谢谢。这是有用的反馈(对我和OP都是如此)。
if float(x).is_integer():
   # do stuff