Python 3 – 运算符优先级示例
下表按从最高优先级到最低列出所有运算符。
顺序 | 运算符及说明 |
---|---|
1 | ** 指数(求幂运算) |
2 | ~ + - 按位取反,一元加和减(最后两个的方法名为+@和-@) |
3 | * / % // 乘法,除法,取模和向下取整除法 |
4 | \+ - 加法和减法 |
5 | >> << 右移和左移位运算 |
6 | & 按位与 |
7 | ^ | 按位异或和按位或 |
8 | <= < > >= 比较运算符 |
9 | <> == != 相等运算符 |
10 | = %= /= //= -= += *= **= 赋值运算符 |
11 | is is not 身份运算符 |
12 | in not in 成员运算符 |
13 | not or and 逻辑运算符 |
运算符优先级影响表达式的计算。
例如,x = 7 + 3 * 2
; 在这里,x 被赋值为 13,而不是20,因为运算符 *
的优先级高于 +,所以它先计算3 * 2
,然后再加上7。
这里,具有最高优先级的运算符出现在表格顶部,具有最低优先级的运算符出现在底部。
例子
#!/usr/bin/python3
a = 20
b = 10
c = 15
d = 5
print ("a:%d b:%d c:%d d:%d" % (a,b,c,d ))
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)
输出
当您执行以上程序时,它会产生以下结果 −
a:20 b:10 c:15 d:5
(a + b) * c / d的值为: 90.0
((a + b) * c) / d的值为: 90.0
(a + b) * (c / d)的值为: 90.0
a + (b * c) / d的值为: 50.0