Python:逻辑表达式为False,但if不为';我不在乎

Python:逻辑表达式为False,但if不为';我不在乎,python,boolean-expression,Python,Boolean Expression,可能重复: 逻辑测试a==True如何可能产生False,但如果a:有效?请参阅下面的代码 >>> a = bin(0) >>> if a: print a == True, 'HOWWWW???????' False HOWWWW??????? >>> type(a) <type 'str'> >>> >a=bin(0) >>>如果是: 打印a==True,'HOWWWW?????' 假怎么说

可能重复:

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

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


False HOWWWW???????
>>> type(a)
<type 'str'>
>>> 
>a=bin(0)
>>>如果是:
打印a==True,'HOWWWW?????'
假怎么说???????
>>>类型(a)
>>> 

好的,在python中,似乎不能这样测试字符串:

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

好的,在python中,似乎不能这样测试字符串:

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

对于字符串
a
如果a
等于
如果len(a)=0

对于字符串
a
如果a
等于
如果len(a)=0

if语句不依赖于值是否等于true。这取决于
bool(a)
是否等于True,在本例中为True。在布尔上下文中,非空字符串被视为true。请参阅。

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

为什么不?字符串永远不会等于True或False,因为True或False都不是字符串。至少它不会引发异常!为什么不呢?字符串永远不会等于True或False,因为True或False都不是字符串。至少它不会引发异常!Python有一个在本文档中计算为false的表达式的简短列表:Python有一个在本文档中计算为false的表达式的简短列表: