多个运算符同时出现在一个表达式中时,先执行哪个,后执行哪个,这就涉及运算符的优先级。
如数学表达式,有+、-、×、÷、()等,优先级顺序是()、×、÷、+、-,如5+(5-3)×4÷2,先计算(5-3)=2,再计算2×4=8,8÷2=4,最后计算5+4=9。
Python中的运算符优先级如下表(优先级越高,“优先级”列中的数字越大):
运算符说明 | 运算符 | 优先级 |
小括号 | ( ) | 8 |
乘方 | ** | 7 |
乘、除 | *、/、//、% | 6 |
加、减 | +、- | 5 |
比较 | ==、!=、>、>=、<、<= | 4 |
逻辑非 | not | 3 |
逻辑与 | and | 2 |
逻辑或 | or | 1 |
同一优先级的运算符,一般是按从左到右执行,即左结合性;只有**和not先执行右边,即右结合性。
在比较复杂的表达式中,如果对优先级的执行不是很确定,建议可以使用小括号。
示例:
a = 8
b = 5
c = a and b - 5
#结果c=0
#减号优先级比逻辑与大,先计算b-5=0,再计算8 and 0,结果为0
示例2:print(3 * 5 < 6 * 2 or 10 - 4 and 9 % 2 == 12 - 11)的结果是?
print(3 * 5 < 6 * 2 or 10 - 4 and 9 % 2 == 12 - 11)
#结果:True
#熟记乘除>加减>逻辑运算即可计算出正确结果