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

Yug*_*dle 1 python boolean-logic boolean boolean-expression boolean-operations

据我所知 :

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

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

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

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

Mar*_*ers 8

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

请参阅布尔运算:

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

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

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

>>> bool(False or 'name')
True
Run Code Online (Sandbox Code Playgroud)