表达式的优先级

>>> 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。

results matching ""

    No results matching ""