Python 如何创建if语句来检查变量是否为int?
我想做一个程序,我需要检查用户的输入 所以,问题是,如果输入值是字符串还是整数,我如何检查它 下面是一些不起作用的实验代码:Python 如何创建if语句来检查变量是否为int?,python,python-3.x,Python,Python 3.x,我想做一个程序,我需要检查用户的输入 所以,问题是,如果输入值是字符串还是整数,我如何检查它 下面是一些不起作用的实验代码: a = 10 print(type(a)) if (a==10): print("aaaaa") else: if(type(a)== "<class 'int'>"): print("12345") a=10 印刷品(a型) 如果(a==10): 印刷品(“AAAA”) 其他: 如果(类型(a)==”): 打印(“12
a = 10
print(type(a))
if (a==10):
print("aaaaa")
else:
if(type(a)== "<class 'int'>"):
print("12345")
a=10
印刷品(a型)
如果(a==10):
印刷品(“AAAA”)
其他:
如果(类型(a)==”):
打印(“12345”)
您可以通过以下方式完成:
a = 10
if type(a) is int:
print("Yes")
else:
print("No")
input()将始终返回字符串,即type(input())
将是str
据我所知,您希望在继续之前验证输入
,这就是你能做的
foo = input()
if not foo.isdigit():
raise ValueError("Enter a valid integer")
foo = int(foo)
这对于负数不起作用,因为您可以检查foo是否以“-”开头
如果要检查变量的类型
a = 10
if isinstace(a, int):
pass
如果你想检查用户输入,这是没有帮助的。无论用户键入
123
还是abc
,您仍然会得到一个表示他们键入的字符序列的字符串,而不是一个表示该字符序列的数值的整数。好的,那么我如何检查它呢?type(a)==int
或isinstance(a,int)
。如果它来自输入,意味着a
是一个str
,并且您想检查a
是否是一个类似str
的int,您可以执行a.isdigit()
@seakyone:isdigit
是错误的测试。它测试数字字符,而不是代表数字的字符串。例如,'-1'.isdigit()
是False
@user2357112您是对的。如果a[0]='-'或者a.isdigit(),我可能应该这样说。但是如果没有询问者的进一步确认,int检查很难给出准确的答案。使用isdigit
是一个常见的错误,但仍然是错误的。例如,'-1'.isdigit()
是False
isdigit
是对数字字符的测试,而不是对表示数字的字符串的测试。但当a
是用户输入时,则a
始终是字符串类型。看看他是如何要求他检查用户输入的。另外,isinstance()
通常比type()
更受欢迎。(搜索一下原因,有很多写得很好的答案解释了这一点。)@orangeInk这是一个很好的观点。谢谢你。@NielsHenkens你完全正确。它不能与用户输入一起工作。
a = 10
if isinstace(a, int):
pass