购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

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 v/dyukJprR9TSDaiLLyGYuqSwOjTl7JfGh4pFAxrRMeEUSJRUO22vf5AsA1iesHL

点击中间区域
呼出菜单
上一章
目录
下一章
×