python 运算符优先级顺序

最近看到几个小例子,发现自己对这块有点不是很清楚,遂记录一下。
以下运算符,从下至上,优先级顺序依次递增。

Lambda
逻辑运算符: or
逻辑运算符: and
逻辑运算符:not
成员测试: in, not in
同一性测试: is, is not
比较: <,<=,>,>=,!=,==
按位或: |
按位异或: ^
按位与: &
移位: << ,>>
加法与减法: + ,-
乘法、除法与取余: *, / ,%
正负号: +x,-x

举个例子:

  1. +- 加减法优先级大于逻辑运算符
    >>> 2 - 2 and 1
    0
    >>> 2 and 1
    1
    >>> 0 and 1
    0

  2. 说起逻辑运算符这里就顺便提下里面的一些小细节,假若给定a,b; a>0 and b>0,则有:
    a and b = b
    a or b = a
    >>> 3 or 4
    3
    >>> 4 or 3
    4
    >>> 3 and 4
    4
    >>> 4 and 3
    3