Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何创建if语句来检查变量是否为int?_Python_Python 3.x - Fatal编程技术网

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