表达式的优先级
>>> a = 1
>>> b = 2
>>> c = 3
>>> a or b and c
1
>>> a or (b and c)
1
先运算的b and c
需要注意的是:同级运算符是从左到右依次解析 特别的and的优先级大于or
可以用()
打破解析器的解析规则, ()
里面的式子会被优先执行
>>> a = 1
>>> b = 2
>>> c = 3
>>> a or b and c
1
>>> (a or b) and c
3
从左到右:左结合
a = 1
b = 2
c = a+b # 赋值运算符右结合
实际上赋值运算符的优先级是最低的,比如
>>> a = 1
>>> b = 2
>>> c = 3
>>> d = a or b and c
>>> d
1
>>> a = 1
>>> b = 2
>>> c = 2
>>> not a or b + 2 == c
False
python逻辑运算符优先级(not,and,or)
>>> not 1 or 0 and 1 or 2 and 3 or 4 and 5
3
这条语句的结果是:3
而不是:5
因为 Python 中逻辑运算符有优先级:
not > and > or
所以上述语事实上是:
>>> (not 1) or (0 and 1) or (2 and 3) or (4 and 5)
这里需要注意,在 Python 中,4 and 5 的结果是 5,4 or 5 的结果是 4。