《Python 3.x入门到应用实践》 —3.7 运算符的优先级

举报
华章计算机 发表于 2020/02/08 23:33:45 2020/02/08
【摘要】 本节书摘来自华章计算机《Python 3.x入门到应用实践》 一书中第3章,第3.7节,作者是赵 军 等。

3.7  运算符的优先级

一个表达式中往往包含许多运算符,运算符优先级会决定程序执行的顺序,这对执行结果有重大影响,不可不慎。如何安排运算符彼此间执行的先后顺序呢?这时需要按照优先级来建立运算规则。当表达式使用超过一个运算符时,例如z = x + 3 * y,就必须考虑运算符的优先级。这个表达式会先执行3 * y的运算,再把运算结果与x相加,最后才会将相加的结果赋值给z。记得我们小时候上数学课时,最先背诵的口诀就是“先乘除,后加减”,这就是优先级的基本概念。

当我们遇到一个Python的表达式时,首先区分出运算符与操作数,接下来按照运算符的优先级进行整理。例如,当表达式中有超过一种运算符时,会先执行算术运算符,其次是比较运算符,最后才是逻辑运算符。比较运算符的优先级都是相同的,会从左到右按序执行,而不同的算术运算符和逻辑运算符则有优先级的差别。

以下是Python语言中各种运算符计算时的优先级。

      算术运算符的优先级(从高到低)可参考表3-10。

表3-10

image.png

      逻辑运算符的优先级(从高到低)可参考表3-11。

 

 

表3-11

image.png

当然也可以使用“()”括号来改变优先级。最后从左到右考虑运算符的结合性,也就是遇到相同优先等级的运算符会从最左边的操作数开始处理。括号运算符拥有最高的优先级,需要先执行的运算就加上括号“()”,括号“()”内的表达式会优先执行,例如:

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所示。

 image.png

图3-14


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。