Python:为什么False或'name'返回'name'而不是False?

时间:2012-10-30 10:28:53

标签: python boolean boolean-logic boolean-expression boolean-operations

AFAIK:

andor是布尔运算符,任何布尔表达式都应返回布尔值。

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

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

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

1 个答案:

答案 0 :(得分:8)

不,在python中,orand操作会短路并返回最后一个评估项目。

请参阅Boolean operations

  

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

     

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

如果必须具有布尔值,请使用bool()

>>> bool(False or 'name')
True