python的and与or剖析

时间:2023-12-21 21:58:50

1、只含有and的表达式

In []:  and True and '
Out[]: '

In []:  and  and True and 'long'
Out[]: 

从左向右,遇到False,则返回改值(注意:并不是返回False),否则返回最后一个值。

2、只含有or的表达式

In [26]: 1 or 0 or True or False
Out[26]: 1

In [27]: 0 or 1 or True or False
Out[27]: 1

从左向右,遇到True,那么返回改值(注意,并不是返回True),否则返回最后一个值

3、同时含有and和or的表达式

In [31]: 0 or 5 and 1 or 3
Out[31]: 1

In [32]: '' or 5 or 0 and 4
Out[32]: 5

In [33]: True or True and False
Out[33]: True

and的优先级高于or,所以 True or True and False 的返回值是True

知道and优先级高于or,那么接下来就容易了,按照第1,2两条规则即可

实际上,了解and的优先级高于or,剩下的逻辑很好理解,表达式返回的值实际上就是python解释器执行到的那个值