python运算符优先级
python3.10
python逻辑运算
优先级:not>and>or
布尔类型False
等于布尔类型False的值
- int:0
- str:‘’
- list:[],list()
- set:set(),{}
- dict:dict(),{}
- tuple:tuple(),()
- None
注意:set和dict的符号都是‘{}’,dict优先set,推荐使用set()创建空的集合。
根据逻辑判断赋值
- and
逻辑判断and的值由判定项的判定结果False确定,如果判定结果都为True则由运算优先级低的判定结果确定,其值为确定项的运算结果。
例如:
v = 2 < 1 and 3 == 3 # 结果由 2<1 确定,v=False
v = 3 == 3 and 2 < 1 # 同上
v = 1 and 'abc' and [] # 结果由 [] 确定 ,v=[]
v = 0 and 1 # 结果由 0 决定,v=0
v = 1 and 'abc' # 结果由 'abc' 确定,v='abc'
- or
逻辑判断or的值由判定项的判定结果True确定,如果判定结果都为False则由运算优先级低的判定结果确定,其值为确定项的运算结果。
例如:
v = 2 < 1 or 3 == 3 # 结果由 3 == 3 确定,v=True
v = 3 == 3 or 2 < 1 # 同上
v = 1 - 1 or [] or 'abc' == "abc" # 结果由 'abc' == "abc" 确定 ,v=True
v = 0 or 1 # 结果由 1 决定,v=1
v = 0 or '' or set() # 结果由 set() 决定,v=set()