无条件在Python中使用逻辑运算符

时间:2019-04-18 08:22:34

标签: python logical-operators

这似乎是一个简单的问题,但我找不到先例。一个答案here指出了这一点,但没有解释原因。

使用不带两个变量的逻辑运算符时,返回的不是布尔值,而是一个变量-第一个用于OR,第二个用于AND

'x' or 'y'
> 'x'

3 and 4
> 4

这种行为的原因是什么?

1 个答案:

答案 0 :(得分:3)

原因在于,这是快捷评估布尔表达式的最有效方法。使用or,Python返回它遇到的第一个 truthy 值。无需评估其余部分即可发现表达式是否为真。同样,对于and,Python返回它遇到的第一个 falsy 值。无需评估其余部分即可发现表达式是否为假。

如果让您烦恼的是您没有返回布尔值,请在您的表达式周围换一个对bool()的调用。