ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

零基础Python完全自学教程9:Python中运算符的优先级和条件表达式

2021-10-23 23:32:49  阅读:199  来源: 互联网

标签:优先级 闰年 Python 运算符 结合 表达式


欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础Python完全自学教程》今日分享的是第9课《Python中运算符的优先级和条件表达式》。本节课主要内容有:Python中运算符的优先级、Python的条件表达式。

9.1、Python中运算符的优先级

Python中的运算符的优先级是指在一个表达式中存在多个运算符,先算哪一个后算哪一个。在数学中,我们是遵循“先乘除后加减”的四则运算法则。

Python也不例外,也有自己的运算规则。在Python中,优先级高的先运算,优先级低的后运算,同一级别的从左到右的顺序进行。同时Python运算还有结合性,要考虑结合方向决定求职顺序。接下来请看图9.1 Python 运算符优先级和结合性一览表。

图9.1 Python 运算符优先级和结合性一览表

根据上面图标信息,我们来运算一个简单的表达式:

4+4<<2

+的优先级是 12,<<的优先级是 11,+的优先级高于<<,所以先执行 4+4,得到结果 8,再执行 8<<2,得到结果 32,这也是整个表达式的最终结果。

像这种不好确定优先级的表达式,我们可以给子表达式加上( ),也就是写成下面的样子:

(4+4) << 2

这样看起来就一目了然了,不容易引起误解。

当然,我们也可以使用( )改变程序的执行顺序,比如:

4+(4<<2)

则先执行 4<<2,得到结果 16,再执行 4+16,得到结果20。

虽然 Python 运算符存在优先级的关系,但我不推荐过度依赖运算符的优先级,这会导致程序的可读性降低。因此,我建议读者:

1、不要把一个表达式写得过于复杂,如果一个表达式过于复杂,可以尝试把它拆分来书写。

2、不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用( )来控制表达式的执行顺序。

最后再来谈谈Python 运算符结合性

所谓结合性,就是当一个表达式中出现多个优先级相同的运算符时,先执行哪个运算符:先执行左边的叫左结合性,先执行右边的叫右结合性。

例如对于表达式对于100 / 25 * 16,/和*的优先级相同,应该先执行哪一个呢?这个时候就不能只依赖运算符优先级决定了,还要参考运算符的结合性。/和*都具有左结合性,因此先执行左边的除法,再执行右边的乘法,最终结果是 64。

Python 中大部分运算符都具有左结合性,也就是从左到右执行;只有 ** 乘方运算符、单目运算符(例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们具有右结合性,也就是从右向左执行。

图9.1 Python 运算符优先级和结合性一览表中列出了所有的 Python 运算符的结合性。

当一个表达式中出现多个运算符时,Python 会先比较各个运算符的优先级,按照优先级从高到低的顺序依次执行;当遇到优先级相同的运算符时,再根据结合性决定先执行哪个运算符:如果是左结合性就先执行左边的运算符,如果是右结合性就先执行右边的运算符。

9.2、Python中的条件表达式

在Python开发程序的时候,经常会根据表达式的结果有条件的赋值。如:要返回两个数中较大的数,可以使用下面的if语句:

a = 10
b = 6
if a>b:
     r = a
else:
     r = b
print(r)

上述代码可以使用条件表达式进行简化,代码如下:

a = 10
b = 6
r = a if a>b else b
print(r)

使用条件表达式时,先计算中间件(a>b),如果结果为True,则返回if语句左边的值,否则返回else右边的值。上面结果为10。

实例9.2、使用条件表达式判断是否为闰年。

我们新建一个叫做runnian.py的文件,然后再该文件中定义一个保存要判断的年份的 变量,然后判断该年份是否为闰年,最后输出判断结果,代码如下:

year = 2021   # 年份
result = "是闰年" if (year%4==0 and year % 100 !=0) or (year%100 == 0) else "不是闰年"
print("\n"+str(year) + "年" + result + "!")  # 输出结果

运行上面代码,显示结果如下:

2021年不是闰年!
>>> 

站长在线提醒大家:判断一个年份是否为闰年的条件是,可以可以被4整除,但 不能被100整除,或者可以被400整除。

附:

1582年以来的置闰规则:

普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。

世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。

下节预告:零基础Python完全自学教程10:Python中的程序结构

9.1、下面说法中正确的是(  )

A、小括号“()”是运算符的优先级中的最高级别。

B、优先级高的先运算,优先级低的后运算,同一级别的从左到右的顺序进行。

C、有乘方的运算也是从左到右开始计算。

D、在编写程序时,尽量使用小括号()来限定运算次序。

上期答案:上期无题目

相关阅读:

《零基础Python完全自学教程》汇总

标签:优先级,闰年,Python,运算符,结合,表达式
来源: https://blog.csdn.net/u010292470/article/details/120928090

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有