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

时间:2013-04-02 13:03:57

标签: 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()

当我运行代码时,我会得到类似的结果:

enter image description here

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

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

提前致谢。

1 个答案:

答案 0 :(得分:11)

if isinstance(num, int)

这将是正确的方法。

if num is int

正在检查numint的身份是否相同,但int是一种类型而num是该类型的实例,因此它们不是相同的对象。