python输出无两次

时间:2015-10-01 16:34:15

标签: python python-2.7

我在Python 2.7.10中运行了以下代码:

count = 1
for i in (False, None):
    print count
    count += 1
    if i is None:
        print i
    if not i:
        print i

,输出

1
False
2
None
None

如果我运行代码:

count = 1
for i in (False, None):
    print count
    count += 1
    if i is None:
        print i

输出是:

1
2
None

为什么在第一种情况下无打印两次。

1 个答案:

答案 0 :(得分:0)

你遗失了什么; 两个 if条件都属实:

>>> i = None
>>> i is None
True
>>> not i
True

Noneconsidered false in a boolean context; false是真的;引用文档:

  

可以测试任何对象的真值,以便在ifwhile条件下使用,或者作为下面布尔运算的操作数。以下值被视为false:

     
      
  • None
  •   
     

[...]

     

所有其他值都被认为是真的 - 因此许多类型的对象始终为真。

同时传递if i is None:if not i:,您需要两次打印i