对。这是正确的行为和比较。
至少在python中,
A and B
收益率
B
如果
A
本质上
True
包括如果
一
不为空,不为
None
不是空的容器(例如
list
,
dict
等)。
一
返回IFF
一
本质上
False
或
没有
或空或空。
另一方面,
A or B
收益率
一
如果
一
本质上
真
包括如果
一
不为空,不为
没有
不是空的容器(例如
列表
,
双关语
,否则返回
乙
.
很容易不注意(或忽略)这种行为,因为在python中,
non-null
非空对象的计算结果为true,将被视为布尔值。
例如,以下所有内容都将打印“true”
if [102]:
print "True"
else:
print "False"
if "anything that is not empty or None":
print "True"
else:
print "False"
if {1, 2, 3}:
print "True"
else:
print "False"
另一方面,以下所有内容都将打印“false”
if []:
print "True"
else:
print "False"
if "":
print "True"
else:
print "False"
if set ([]):
print "True"
else:
print "False"