AFAIK:
and
,or
是布尔运算符,任何布尔表达式都应返回布尔值。
那么,为什么会发生这种情况:
False or 'name'
返回'name'
而不是True
True and ''
返回''
而不是False
请解释一下,python如何处理布尔表达式?
答案 0 :(得分:8)
不,在python中,or
和and
操作会短路并返回最后一个评估项目。
表达式
x and y
首先评估x
;如果x
为false,则返回其值;否则,将评估y
并返回结果值。表达式
x or y
首先评估x
;如果x
为真,则返回其值;否则,将评估y
并返回结果值。
如果必须具有布尔值,请使用bool()
:
>>> bool(False or 'name')
True