1

AFAIK :

and,or是布尔运算符,任何布尔表达式都应该返回一个布尔值。

那么,为什么会发生这种情况:

  • False or 'name'返回'name'而不是True
  • True and ''返回''而不是False

请解释一下,python如何处理布尔表达式?

4

1 回答 1

8

不,在 python 中,orandand操作短路并返回最后评估的项目。

请参阅布尔运算

表达式x and y首先计算x; 如果x为假,则返回其值;否则,y评估并返回结果值。

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

如果您必须有一个布尔值,请使用bool()

>>> bool(False or 'name')
True
于 2012-10-30T10:30:12.627 回答