为什么这个if条件"如果num是int:"不起作用?

cra*_*ice -1 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
        print "soma =", soma, " num = ", num, " n = ", n
        media = soma/n
        print media
    else:
        break
media()
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我得到这样的东西:

在此输入图像描述

我的问题是:为什么条件if num is int:不满足?

我的目标是使条件"如果用户键入ENTER,然后中断".

提前致谢.

jam*_*lak 11

if isinstance(num, int)
Run Code Online (Sandbox Code Playgroud)

这将是正确的方法.

if num is int
Run Code Online (Sandbox Code Playgroud)

是检查是否的身份numint是相同的,不同之处int是一个类型,num是该类型的一个实例,以便它们不是相同的对象.