Python运算符和优先级
从高到低
优先级 | 运算符 | 描述 |
---|---|---|
1 | 'expression,...' | 字符串转换 |
2 | {key:datum,...} | 字典显示 |
3 | [expression,...] | 列表显示 |
4 | (experession,...) | 绑定或元组显示 |
5 | f(arguments...) | 函数调用 |
6 | x[index:index] | 寻址段 |
7 | x[index] | 下标 |
8 | x.attribute | 属性参考 |
9 | ** | 指数 |
10 | ~x | 按位翻转 |
11 | +x,-x | 正负号 |
12 | *,/,//, %, @ | 乘法、除法、整除、取余和装饰 |
13 | +,- | 加法与减法 |
14 | <<,>> | 移位 |
15 | & | 按位与 |
16 | ^ | 按位异或 |
17 | | | 按位或 |
18 | <,<=,>,>=,!=,== | 比较 |
19 | is,is not | 同一性测试 |
20 | in,not in | 成员测试 |
21 | not x | 布尔“非” |
22 | and | 布尔“与” |
23 | or | 布尔“或” |
24 | ... if ... else ... | 三目运算 |
25 | lambda | Lambda表达式 |
额外说明
- Python2中:
!=
也可以写为<>
- 按位翻转
~
,不清楚原码、反码、补码的话,记住一个简单的公式-(a + 1)
- 例如:
~5
,为-(5 + 1)
⇒-6
- 例如:
<<
,就是 原数 * 2n,n是移动的位数>>
,就是 原数 / 2n,n是移动的位数- 连等,例如:
2 == 2 == 2
⇒True
2 == 2 == 1
⇒False
,三个对象的值必须全等才返回True
- 同一性测试,例如:
2 is 2 is 2
⇒True
2 is 2 is True
⇒False
,三个必须是同一个对象才返回True