带有整数的Python"和"运算符

Mik*_*ott 10 python boolean

Python中这种行为的解释是什么?

a = 10
b = 20
a and b # 20
b and a # 10
Run Code Online (Sandbox Code Playgroud)

a and b计算结果为20,而b and a评估结果为10.正整数是否等于True?为什么评估第二个值?因为它是第二个?

Dav*_*nan 16

文档解释了这个相当不错:

表达式x and y首先评估x; 如果x为false,则返回其值; 否则,y将评估并返回结果值.

同样or可能是你嘴唇上的下一个问题.

表达式x or y首先评估x; 如果x为真,则返回其值; 否则,y将评估并返回结果值.