Python中的'a' and 'b'
是什么意思,为什么等于'b'
?为什么不等于'a'
?
>>> 'a' and 'b'
'b'
答案 0 :(得分:2)
来自Pycharm文档:
表达式x和y首先计算x;如果x为假,则返回其值;否则,将评估y并返回结果值。
因为'a'不是False'b'被求值并返回。
也很高兴知道。什么被评估为是,什么被评估为:
以下值解释为false:False,None,所有类型的数字零,空字符串和容器(包括字符串,元组,列表,字典,集合和Frozensets)。所有其他值都解释为true。
答案 1 :(得分:1)
'a'
或'b'
都是'a' and 'b'
的可接受答案(因为两者都是真实的),但是只有False
是{{1}的可接受答案},就像'a' and False
是0
的可接受答案一样(因为此评估结果在逻辑上必须正确,所以必须为false)。
当左手为true时,短路布尔值计算遵循右手路径,这样就可以在所有情况下应用一条规则。