运算符优先级
如果某个表达式中同时使用了多个运算符,这些运算符的优先级是不同的。表1列出了从最高到最低优先级的所有运算符。
表1 运算符优先级
运算符 | 描述 |
---|---|
** | 指数(最高优先级) |
~ + - | 按位翻转,一元加号和减号(最后两个的方法名为+@和-@) |
* / % // | 乘,除,取模和取整除 |
+ - | 加法,减法 |
>> << | 右移,左移运算符 |
& | 按位与 |
^ | | 位运算符 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += = = | 赋值运算符 |
is is not | 成员运算符 |
or and | 逻辑运算符 |
为了便于大家更好地理解运算符的优先级,接下来,通过实例演示Python运算符的优先级,具体代码如下所示:
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d # 等价于( 30 * 15 ) / 5
print("(a + b) * c / d 运算结果为:", e)
e = ((a + b) * c) / d # (30 * 15 ) / 5
print("((a + b) * c) / d 运算结果为:", e)
e = (a + b) * (c / d) # (30) * (15/5)
print("(a + b) * (c / d) 运算结果为:", e)
e = a + (b * c) / d # 20 + (150/5)
print("a + (b * c) / d 运算结果为:", e)
运算结果如图1所示。
图1 运算结果