关于if语句:检查python var if int

Check python var if int

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
8
    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)),这将提供预期的正确结果。因此,您的代码将采用以下形式:

1
2
3
4
5
6
7
8
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,因为语句告诉程序退出循环。