20 运算符及优先级汇总
- 数字越小,优先级越高
- 结合性默认为从左至右。只有条件运算符、幂运算符是从右至左
- Python没有逗号运算符,有条件运算符,lambda(匿名函数)也有类似运算符的功能
- 虽然官方文档没列出
=的优先级,但编程中有判断=运算优先级的需要,其优先级应当是最低,与:=相同
| 运算符 | 说明 | 优先级 | 结合性 |
|---|---|---|---|
(expressions...)[expressions...]{key:value...}{expressions...} |
括号的表达式 列表字面量 字典字面量 集合字面量 |
1 | |
x[index]x[index:index]x(arguments...)x.attribute |
下标 切片 函数调用 属性引用 |
2 | |
await x |
await表达式 | 3 | |
** |
幂 | 4 | 从右至左 |
+X-X~X |
正号 负号 按位取反 |
5 | |
*@///% |
乘法 矩阵乘法 (非原生支持) 除法 向下取整除法 求余数 |
6 | |
+, - |
加减法 | 7 | |
<<, >> |
左移, 右移 | 8 | |
& |
按位与 | 9 | |
^ |
按位异或 | 10 | |
| |
按位或 | 11 | |
in, not inis, is not<, <=, >, >=, !=, == |
成员检验 id检验 比较运算符 |
12 | |
not |
布尔非 | 13 | |
and |
布尔与 | 14 | |
or |
布尔或 | 15 | |
x if e else y |
条件表达式 | 16 | 从右至左 |
lambda |
lambda表达式 | 17 | |
:= |
赋值表达式 (海象运算符) | 18 |
参考资料: