Python中这种行为的解释是什么?
a = 10
b = 20
a and b # 20
b and a # 10
a and b
的计算结果为20,而b and a
的计算结果为10.正整数是否等于True?为什么评估第二个值?因为它是第二个?
答案 0 :(得分:16)
documentation很好地解释了这一点:
表达式
x and y
首先评估x
;如果x
为false,则返回其值;否则,将评估y
并返回结果值。
同样适用于or
,这可能是你嘴上的下一个问题。
表达式
x or y
首先评估x
;如果x
为真,则返回其值;否则,将评估y
并返回结果值。
答案 1 :(得分:4)
请参阅docs:
x and y if x is false, then x, else y
非零整数被视为布尔值true,因此您可以完全获得文档中描述的行为:
>>> a = 10
>>> b = 20
>>> a and b
20
>>> b and a
10
答案 2 :(得分:0)
在python中,一切都不是None,0,False,“”,[],(),{}为True
在这种情况下,a和b被加为True和True b和a
相同并且在这种情况下,它采用第一个值
编辑:在评论中不完整