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解释器执行到的那个值。