Python:逻辑表达式为False,但如果不关心

时间:2012-12-27 20:17:23

标签: python boolean-expression

  

可能重复:
  Why does “[] == False” evaluate to False when “if not []” succeeds?

逻辑测试a == True如何生成False,但是如果a:有效,这怎么可能?请参阅下面的代码

>>> a = bin(0)
>>> if a:
    print a == True, 'HOWWWW???????'


False HOWWWW???????
>>> type(a)
<type 'str'>
>>> 

3 个答案:

答案 0 :(得分:6)

if语句不取决于该值是否等于true。这取决于bool(a)是否等于True,在这种情况下它是。在布尔上下文中,非空字符串被视为true。请参阅the documentation

答案 1 :(得分:0)

好吧,在python中你似乎无法以这种方式测试字符串:

>>> a == False
False
>>> a == True
False
>>> 

答案 2 :(得分:0)

表示字符串aif a相当于if len(a)!=0