请问一下,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