课时38:运算符的优先级

简介: 课时38介绍了运算符的优先级,通过回顾练习加深理解。示例中使用三元运算符求三个变量的最大值,强调代码可读性的重要性。接着详细讲解了Python中运算符的优先级规则,如先乘除后加减,逻辑运算符`and`优先级高于`or`。课程还展示了如何通过官方表格查询运算符优先级,并建议在不确定时使用括号明确优先级。最后强调基础知识的重要性,为后续学习打下坚实基础。

课时38:运算符的优先级


摘要:

1.回顾练习

2.运算符的优先级

 

01.回顾练习

 

回顾之前的练习。该练习涉及三个变量 abc

a=10
b=20
c=30
#通过条件运算符获取三个值中的最大值
Max = a If a > b Else b
Max =  Max If Max > c Else c
Print(Max)

获取 ab最大值Max,再用Max和c比看谁大,谁就是最大值。

image.png

a=40
b=20
c=30
max = a if a > b else b
max =  max if max > c else c
print(max)

image.png

三元运算符还可以稍作复杂化,可以连续写就是可以将这两个东西整合成一个。

max = a if a > b and a > c else b if b > c else c

如果b And a 条件满足证明 a 是最大的,反之不是最大的,b 或者c 是最大的,再比较 b 和 c 的大小。

image.png

把 b 改成 50,结果就是 50。

image.png

b and a是条件判断, c else b if b > c else c是表达式,语句在执行时会进行判断,如果 a 比b 大,同时 c 比 a 大,会返回 a, 有一个不成立会执行 Else ,如果 a 不是最大的,就比较 b 和 c 。尽管表面上代码量减少,仅写了一行代码,但实际这行代码的可读性和理解性非常差。可能自己编写后还能理解,但让他人阅读这段代码会非常困难。因此,在开发过程中不推荐使用这种方式。如果必须如此编写,在条件判断表达式后添加一个括号,对整个 Else 子句进行包裹,这样逻辑的节奏就变得清晰可读。虽然这种做法会使代码看起来更清晰,但并不推荐使用,因为这会增加阅读难度。强调,代码不仅要功能正确,还要易于阅读。

max = a if (a > b and a > c) else (b if b > c else c)#不推荐这么使用

 

02.运算符的优先级


a=1+2*3

Print(a)

运算顺序是先乘除后加减,和数学中运算顺序一致。在 Python 中,运算符也有优先级,先进行乘除运算,再进行加减运算。

image.png

然而问题随之而来在 Python 中使用的运算符比实际要多。例如有 And 和 Or。

a = 1 or 2 and 3

And 和 Or谁的优先级高,假设无法通过百度或向他人提问来获得答案,遇到这类问题时,可以自己尝试分析。先猜测一下,这种情况可能有两种或三种可能性。第一种是两者一样高。第二种是And 的结果更高。第三种情况是Or  高如果Or的优先级高,或者两个运算符的优先级一样高,则需要先进行或运算,则运算结果是3,如果 And 的优先级高,则应该先计算与运算,则运算结果是1,所以分两种情况,如果结果是 3 就是与高,或者一样高。结果是 1 就是 And 高。

image.png

经过测试发现与的优先级更高。运算符的优先级可以根据优先级的表格来查询,在官方表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算如果优先级一样则自左向右计算,在 Python 3.6 的手册,直接点开它在 Language Reference 中Expressions 表达式,有一个 Operator就是运算符操作符的意思。


image.png

直接点开就看到了一个表格。

 

image.png

这个表格实际上就是在说运算符的优先级,注意这个表格越往下优先级越高。括号、中括号和大括号,它们的优先级是最高的,幂运算是优先级较高的。一元的正号,一元的负号,乘除整除,a 比与高,与比或高,三元运算符没什么位置在最后如果对运算符的优先级感到困惑,可以参考下表格关于优先级的表格,你知道有这么一个东西就够了,千万不要去记。在开发过程中,如果遇到优先级不明确的情况可以通过加上小括号改变运算符的优先级

逻辑运算符(补充)在Python中有一个特殊的用法逻辑运算符可以连续使用。

Result = 1 < 2 < 3

Print(Result)

image.png

#相当于1<2 And 2<3同时满足时返回True,都是以中间的数进行比较,这种写法在 Python 中是独有的。

Result = 10 < 20< 15 返回True,都是对中间的数进行比较。

image.png

再次强调,本章内容属于基础知识,可能会让人感到乏味,甚至昏昏欲睡。然而基础知识的重要性不容忽视如同学习语言之初,对每个字的笔画、大小、前后顺序等细节可能毫无关联,但随着知识的积累,当能够将这些知识点串联起来时,就会发现其中的奥秘。因此,现在正是要认真记笔记、积累知识,并在此基础上进行完善和总结,补充缺失的内容,借此机会进行复习,确保大家能够熟练掌握本章的知识。随着进入第三章和第四章,练习的难度将逐渐增加。到那时将会深刻认识到基础知识的重要性。因此,务必扎实地掌握前三章的基础知识。

相关文章
|
3月前
|
JSON API 开发者
1688商品 API接口,开发者详解与使用指南
1688商品API是阿里巴巴开放平台提供的接口,支持获取商品详情与列表信息。包含商品标题、价格、销量、库存、图片等关键数据,适用于电商数据分析、比价工具、库存管理等场景。开发者需注册账号并创建应用获取App Key和App Secret用于身份验证。通过构造HTTP请求调用API,并解析JSON或XML响应获取数据。提供Python示例代码,方便快速接入。
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能技术的探讨
人工智能的概念,人工智能的发展,人工智能的各种学派,人工智能的应用领域
278 4
|
2月前
|
人工智能 供应链 数据可视化
工作流梳理工具实战教程:手把手教你绘制第一张自动化流程图
本文剖析了团队因流程混乱导致重复劳动和效率低下的问题,提出通过工作流梳理提升协作效率的解决方案。总结了流程梳理的六大核心需求,并深度测评了6款主流工具,国内有板栗看板那,国外有kiss flow结合团队规模与需求提供选型建议,助力企业高效落地流程优化。
|
2月前
|
人工智能
视频脚本是什么意思?视频脚本怎么写
果和团队协作的基础。它不同于传统文学剧本,更强调视觉呈现与节奏控制,适用于短视频、广告片、Vlog等多种形式
|
4月前
|
缓存 负载均衡 网络协议
电商API接口性能优化技术揭秘:缓存策略与负载均衡详解
电商API接口性能优化是提升系统稳定性和用户体验的关键。本文聚焦缓存策略与负载均衡两大核心,详解其在电商业务中的实践。缓存策略涵盖本地、分布式及CDN缓存,通过全量或部分缓存设计和一致性维护,减少后端压力;负载均衡则利用反向代理、DNS轮询等技术,结合动态调整与冗余部署,提高吞吐量与可用性。文中引用大型及跨境电商平台案例,展示优化效果,强调持续监控与迭代的重要性,为电商企业提供了切实可行的性能优化路径。
|
5月前
|
人工智能 自然语言处理 JavaScript
【CodeBuddy】三分钟开发一个实用小功能之:字体阴影实时预览工具
CodeBuddy是一款革命性AI编程助手,通过自然语言描述快速生成可运行代码。本文以实时更新文字阴影效果的交互界面为例,展示其智能上下文理解、全链路生成等核心功能。应用场景涵盖原型开发、教学辅助及日常提效,未来还将支持多模态交互与个性化风格。附完整HTML/CSS/JS代码,助开发者专注创意实现。
136 2
【CodeBuddy】三分钟开发一个实用小功能之:字体阴影实时预览工具
|
5月前
|
人工智能 程序员 测试技术
游戏开发成本认知鸿沟:从民间臆测到3A现实的残酷距离-优雅草卓伊凡
游戏开发成本认知鸿沟:从民间臆测到3A现实的残酷距离-优雅草卓伊凡
211 16
游戏开发成本认知鸿沟:从民间臆测到3A现实的残酷距离-优雅草卓伊凡
|
7月前
|
XML Java 数据库连接
优雅的参数校验,告别冗余if-else
本文介绍了在 Java Spring Boot 开发中如何使用 JSR 303 和 Hibernate Validator 进行参数校验,以避免冗余的if-else判断。文章涵盖了基本注解的使用、全局异常处理、分组校验、嵌套对象校验、快速失败配置以及自定义校验规则等实用技巧。
226 10
优雅的参数校验,告别冗余if-else
|
8月前
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度
YOLOv11改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度
159 12
YOLOv11改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度
|
7月前
|
弹性计算 负载均衡 网络协议
阿里云共享流量包怎么用?自动生效的宝子们~不用设置,买完就自动抵扣了
阿里云共享流量包是一种自动生效的流量抵扣套餐,可覆盖ECS、EIP、CLB、共享带宽及IPv6网关等产品的公网流量费用。购买后无需手动设置,系统将自动抵扣对应地域的流量费用。适用于亚太全时、亚太闲时和欧美全时等多个区域,支持10GB至10TB不同规格,价格低至4元/月起。使用前需确保流量包与云产品地域匹配,查询用量可通过阿里云【费用与成本】页面查看。更多详情请参考官方文档。
下一篇
oss教程