Python 为什么这个if条件“if num is int:”不起作用?

Python 为什么这个if条件“if num is int:”不起作用?,python,if-statement,conditional-statements,Python,If Statement,Conditional Statements,我知道如果你是代码大师,这看起来很愚蠢。但是如果你回答它,你将成为编码者超自然领域中的编码菩萨。这应该是个笑话 所以,我写了这段代码: def media(): n = 0 soma = 0 while True: print("Type a number") num = input() print type(num) if num is int: soma = soma + num n = n + 1 pr

我知道如果你是代码大师,这看起来很愚蠢。但是如果你回答它,你将成为编码者超自然领域中的编码菩萨。这应该是个笑话

所以,我写了这段代码:

def media():    
n = 0
soma = 0
while True:
    print("Type a number")
    num = input()
    print type(num)
    if num is int:
        soma = soma + num
        n = n + 1
        print "soma =", soma, " num = ", num, " n = ", n
        media = soma/n
        print media
    else:
        break
media()
当我运行代码时,我得到如下结果:

我的问题是:为什么num为int:的条件没有满足

我的目标是,如果用户输入ENTER,则设置条件,然后中断

提前谢谢

if isinstance(num, int)
这是正确的方法

if num is int

正在检查num和int的标识是否相同,只是int是一个类型,num是该类型的实例,因此它们不是同一个对象。

因此,正确的语法是if-isinstancenum,int。python非常简单,if-num是int的形式看起来非常简洁。真遗憾!请注意,在Python中,类型检查通常被认为是不好的形式,在2.x中使用input也一样-使用raw_input,然后使用int尝试从返回的字符串中生成一个数字。如果它成功,它是一个数字,如果抛出异常,它不是。