Python 运算符
1.1 运算符优先级
运算符 | 描述 | 优先级 | 结合性 |
---|---|---|---|
(expr...) 、[expr...] 、{key: value...} 、{expr...} | 绑定或加圆括号的表达式,列表、字典、集合 | 18 | 左 |
x[i] 、x[i:j] 、x(args...) 、x.attribute | 索引、切片、调用、属性引用 | 17 | 左 |
await x | await 表达式 | 16 | 左 |
** | 幂[1] | 15 | 右 |
+x 、-x 、~x | 正,负,按位非 NOT | 14 | 右 |
* 、@ 、/ 、// 、% | 乘,矩阵乘,除,整除,取余 | 13 | 左 |
+ 、- | 加和减 | 12 | 左 |
<< 、>> | 移位 | 11 | 左 |
& | 按位与 AND | 10 | 左 |
^ | 按位异或 XOR | 9 | 左 |
| | 按位或 OR | 8 | 左 |
in 、not in 、is 、is not 、< 、<= 、> 、>= 、!= 、== | 比较运算,包括成员检测和标识号检测 | 7 | 左 |
not x | 布尔逻辑非 NOT | 6 | 右 |
and | 布尔逻辑与 AND | 5 | 左 |
or | 布尔逻辑或 OR | 4 | 左 |
if ... else ... | 条件表达式 | 3 | 左 |
lambda | lambda 表达式 | 2 | 左 |
:= | 赋值表达式 | 1 | 左 |
幂运算符
**
绑定的紧密程度低于在其右侧的算术或按位一元运算符,也就是说2**-1
为0.5
。 ↩︎