逻辑运算规则:
从左向右依次运算至倒数第二个元素,and运算执行判断非空到and运算的最后一个并返回最后一个非空(若执行到and运算最后一个后整个逻辑值为False,则返回第一个导致False的元素),or运算只需要执行至倒数第二个元素后非空(最后一个为or运算)则返回最后一个or运算的左边字符
'a' and 0 and 'b' and 'c' or 'd'
Out[10]: 'd'
'a' and 0 and 'b' and 'c'
Out[11]: 0
'a' and 0 and 'b' and None and 'c'
Out[12]: 0
0 and 'a' or 'b'
Out[14]: 'b'
1 and 'a' or 'b'
Out[15]: 'a'
'a' and 0 and 'b' and None and 'c'
# 运算路径:
'a' and 0 ---> False (# 0为and运算第一个导致False的元素,若整个表达式为False,则返回0)
False and 'b' ---> False
False and None ---> False
False and 'c' ---> False (# 整个表达式的结果为False)
'a' and 0 and 'b' and 'c' or 'd' and 'e' or 'f'
out: 'e'
# 运算路径:
'a' and 0 ---> False (# 0为and运算第一个导致False的元素,若整个表达式为False,则返回0)
False and 'b' ---> False
False and 'c' ---> False
False or 'd' ---> True
True and 'e' ---> True
True or 'f' ---> True (# 最后一次为or运算,True非空即可直接返回,or运算实际不会执行)