【发布时间】:2014-06-24 01:30:00
【问题描述】:
为什么这两个评价不同?
In [34]: a = ''
In [35]: if a or a >=0:
print 'y'
....:
y
In [36]: a = None
In [37]: if a or a >=0:
print 'y'
....:
我认为空字符串的计算结果也为 None(我知道它们不一样)?还是它只是假的,因此评估为 0(如果像 if a: do something 一样测试,则评估为 None)?
【问题讨论】:
-
我错过了你感到困惑的地方。在第一个例子中?由于
>= 0部分,它打印y。 -
我没想到第一个示例会打印任何内容。
-
这是因为 string 与 int 比较的工作方式。
if a部分没有起作用,因为正如您所说,空字符串和None不是一回事。 -
Even more related。简短的回答是:你为什么要进行这样的比较?它甚至在 python 3 中得到了修复
标签: python evaluation