Python print(2 and 1)返回1是什么原理

print(2 and 1)   #1
print(0 and 1)   #0
print(0 or 1)    #1
print(3 or 5)    #3

麻烦问下,以上代码返回结果是什么原理呀

这是布尔类型判断真假,0位假,非0为真

参考这里解释:

如果and两侧的数字都不为0就输出后面的数字,or则是输出第一个非零的数字

img

or 和 and 逻辑运算具有短路特性。
逻辑运算的工作原理是:
表达式A and 表达式B 的工作原理是:如果A的值为false(或A的值可以被当做为false)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
表达式A or 表达式B 的工作原理是:如果A的值为true(或A的值可以被当做为true)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值