请问一下,python中 if not (a or b) 和 if not (a and b) 是什么意思
l1 = []
l2 = []
l3 = []
if not (l1 or l2 or l3):
print('pass_1')
if not (l1 and l2 and l3):
print('pass_2')
请问一下,python中 if not (a or b) 和 if not (a and b) 是什么意思
l1 = []
l2 = []
l3 = []
if not (l1 or l2 or l3):
print('pass_1')
if not (l1 and l2 and l3):
print('pass_2')
1.python中任何一个变量都有真值属性,可以直接用于if和while的条件判断,其中None,False,任何数值类型的零,例如:0、0.0、0j,任何空序列,例如:”、()、[],任何空映射,例如:{}会被认为是False值,其他都是True值
2.python中有三种常用的逻辑运算not、and和or,这三者具体的运算方式如下:
3.任何语言涉及到多个运算符的运算顺序时,都要参考它们的运算符优先级和结合性。下图是python的运算符优先级和结合性表

参考本题分析,if not (l1 or l2 or l3):一行中not (l1 or l2 or l3)是一个完整的用于if判断的表达式
根据优先级,小括号最先运算,所以先看(l1 or l2 or l3)这部分,
多个or运算,要参考结合性,由上图可知or运算是左结合的,所以先算l1 or l2,根据第2点第3小点,该表达式值为l2的值
表达式由l1 or l2 or l3变为l2 or l3,再计算得表达式值为l3的值
所以原表达式not (l1 or l2 or l3)变为not l3,所以该值为True