《Python 3.x入门到应用实践》 —3.7 运算符的优先级
3.7 运算符的优先级
一个表达式中往往包含许多运算符,运算符优先级会决定程序执行的顺序,这对执行结果有重大影响,不可不慎。如何安排运算符彼此间执行的先后顺序呢?这时需要按照优先级来建立运算规则。当表达式使用超过一个运算符时,例如z = x + 3 * y,就必须考虑运算符的优先级。这个表达式会先执行3 * y的运算,再把运算结果与x相加,最后才会将相加的结果赋值给z。记得我们小时候上数学课时,最先背诵的口诀就是“先乘除,后加减”,这就是优先级的基本概念。
当我们遇到一个Python的表达式时,首先区分出运算符与操作数,接下来按照运算符的优先级进行整理。例如,当表达式中有超过一种运算符时,会先执行算术运算符,其次是比较运算符,最后才是逻辑运算符。比较运算符的优先级都是相同的,会从左到右按序执行,而不同的算术运算符和逻辑运算符则有优先级的差别。
以下是Python语言中各种运算符计算时的优先级。
算术运算符的优先级(从高到低)可参考表3-10。
表3-10
逻辑运算符的优先级(从高到低)可参考表3-11。
表3-11
当然也可以使用“()”括号来改变优先级。最后从左到右考虑运算符的结合性,也就是遇到相同优先等级的运算符会从最左边的操作数开始处理。括号运算符拥有最高的优先级,需要先执行的运算就加上括号“()”,括号“()”内的表达式会优先执行,例如:
x = 100 * (90 - 30 + 45)
上面的表达式中有5个运算符:=、*、-和+,根据运算符优先级的规则,括号内的运算会先执行,优先级为-、+、*、=。
【范例程序:precedence.py】 运算符优先级的综合应用
01 # -*- coding: utf-8 -*-
02 """
03 运算符优先级的综合应用
04 """
05 x = 2; y = 3
06 z = 9*(21/x + (9+x)/y)
07
08 print("x=", x)
09 print("y=", y)
10 print("9*(4/x + (9+x)/y)=", z)
程序的执行结果如图3-14所示。
图3-14
- 点赞
- 收藏
- 关注作者
评论(0)