与非布尔值一起使用时,“或”在Python中如何工作?

时间:2018-12-04 01:09:14

标签: python operators

我试图弄清楚'or'运算符在非布尔型变量上使用时的工作方式。特别是,它似乎是不可交换的,令我感到困惑。 “或”不应该互换吗?

据我所知,它似乎正在实施:

a或b = a,除非a = null或0,则a或b = b。

示例:

> 0 or 5  
5
> 5 or 3 
5
> 3 or 5 
3
> '' or 5
5
> 5 or ''
5
> 'ab' or 'cd'
'ab'
> 'cd' or 'ab'
'cd'
> '' or 'cd'
'cd'

1 个答案:

答案 0 :(得分:0)

来自the docs

  

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

     

[...]

     

请注意,andor都没有限制值和类型,它们返回到FalseTrue,而是返回最后一个求值的参数。