Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.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变量是否为int_Python_If Statement_While Loop_Int - Fatal编程技术网

检查python变量是否为int

检查python变量是否为int,python,if-statement,while-loop,int,Python,If Statement,While Loop,Int,我试图让python检查某个变量是否为int numbergames = input("Number of Games to Analyze: ") valuenumber = True while valuenumber == True: if numbergames == int: valuenumber = False if numbergames != int: numbergames = input("Please type a

我试图让python检查某个变量是否为int

    numbergames = input("Number of Games to Analyze: ")
valuenumber = True
while valuenumber == True:
    if numbergames == int:
        valuenumber = False
    if numbergames != int:
        numbergames = input("Please type a valid number: ")
print("Thanks")

即使键入的数字是int,代码也会被卡住,无法跳出循环。

一般来说,不建议使用
type()
来标识输入是否为int、float等。这是因为它不会将
int
的子类注册为
int

相反,使用
isinstance('var',(int,long))
,它将给出正确的预期结果。因此,您的代码将采用以下形式:

numberGames = input("Number of Games to Analyze: ")

while True:
    if isinstance( numberGames, (int, long) ):
        break
    else:
        numberGames = input("Please type a valid number: ")
print("Thanks")

您不需要
valueNumber
变量,因为它只是用作while循环的标志。相反,它可以使用
True
无限期地继续运行,直到达到
break
,因为该语句告诉程序退出循环。

int
类型,而不是整数的实例。使用
isinstance(numbergames,int)
有关如何处理用户输入,请查看此问题。