可能重复:
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'>
>>>
答案 0 :(得分:6)
if
语句不取决于该值是否等于true。这取决于bool(a)
是否等于True,在这种情况下它是。在布尔上下文中,非空字符串被视为true。请参阅the documentation。
答案 1 :(得分:0)
好吧,在python中你似乎无法以这种方式测试字符串:
>>> a == False
False
>>> a == True
False
>>>
答案 2 :(得分:0)
表示字符串a
,if a
相当于if len(a)!=0