【问题标题】:Python: logical expression is False, but if doesn't care [duplicate]Python:逻辑表达式为假,但如果不关心[重复]
【发布时间】:2012-12-27 20:17:22
【问题描述】:

可能重复:
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'>
>>> 

【问题讨论】:

标签: python boolean-expression


【解决方案1】:

if 语句不依赖于值是否等于 true。这取决于bool(a) 是否等于 True,在这种情况下是。在布尔上下文中,非空字符串被认为是真的。见the documentation

【讨论】:

    【解决方案2】:

    好的,在 python 中你似乎不能用这种方式测试字符串:

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

    【讨论】:

    • 为什么不呢?字符串永远不会等于 True 或 False,因为 True 和 False 都不是字符串。至少它不会引发异常!
    【解决方案3】:

    对于字符串 aif a 等价于 if len(a)!=0

    【讨论】:

      猜你喜欢
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多