尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Python逻辑运算中的短路求值
大家好欢迎来到 Crossin的编程教室 之前我们讲过 逻辑运算的规律。观察一下真值表你会进一步发现这样两条规律如果一个条件为真那么它 or 另一个条件无论真假结果一定为真如果一个条件为假那么它 and 另一个条件无论真假结果一定为假于是编程语言在此基础上建立了一种叫做「短路求值」的执行策略即根据已知条件已经可以确定整个逻辑表达式的结果时就不再计算剩余表达式的值。Python也是如此。比如这段代码代码语言javascriptAI代码解释x 5 y 10 if x 0 or y 15: print(条件满足)程序计算出 x 0 为True之后就不会再计算 y 15的值因为无论后面是True还是False都不影响最终的结果。为了证明这一点我们把代码改写一下把后一个表达式变成函数并在其中加上一句输出以便观察代码语言javascriptAI代码解释x -5 y 10 def y小于(n): print(y小于n吗) return y n if x 0 or y小于(15): print(条件满足)输出代码语言javascriptAI代码解释条件满足运行结果中没有输出函数中的print语句可见函数没有被执行。而如果把 x 变成 -5则输出代码语言javascriptAI代码解释y小于n吗 条件满足说明函数被执行了。短路求值的作用显而易见就是避免执行不必要的代码提高程序的效率。我们在写代码的时候也可以利用这一点简化代码。比如要判断 b 是否为 a 的整数倍如果只是这么写代码语言javascriptAI代码解释a int(input()) b 9 if b % a 0: print(b是a的整数倍)那么当a为0时就会抛出除0错误因为整数不能除以0或者对0取模代码语言javascriptAI代码解释ZeroDivisionError: integer division or modulo by zero而避免这种情况不必多加一层if只需要把现有条件增加一下改为代码语言javascriptAI代码解释if a ! 0 and b % a 0:这样当a为0时条件直接短路返回False不会再执行后面的取模运算。此外对于非bool值的逻辑运算短路求值就不仅只是效率上的优化更是直接决定了运算的结果。当两个非bool值进行 and 运算时如果前值转成bool值为False就会触发 and 短路求值运算的结果就是前值而如果前值转成bool值为True不会触发短路求值结果则是后值。代码语言javascriptAI代码解释print(0 and 2) print(3 and 1)输出代码语言javascriptAI代码解释0 1or运算也是类似如果前值转成bool值为True就会触发 or 短路求值运算的结果就是前值而如果前值转成bool值为False不会触发短路求值结果则是后值。代码语言javascriptAI代码解释print(2 or 1) print(0 or 3)输出代码语言javascriptAI代码解释2 3短路求值对于多个连续的and或者多个连续的or也一样有效。多个and的结果会短路在第一个假值否则为最后一个值多个or的结果会短路在第一个真值否则为最后一个值。代码语言javascriptAI代码解释print(1 and [] and 0 and 2) print(0 or a or 3 or [])输出代码语言javascriptAI代码解释[] a最后留一个思考题代码语言javascriptAI代码解释0 and 1 or 2 and 3 or 4 and 5结果是多少为什么视频版如果本文对你有帮助欢迎点赞、评论、转发。你们的支持是我更新的动力~
RELATED

相关推荐

ArcGIS 多环缓冲区 vs 欧氏距离:3种交通便捷性评价方法对比

ArcGIS 多环缓冲区 vs 欧氏距离:3种交通便捷性评价方法对比

ArcGIS 多环缓冲区 vs 欧氏距离 vs 网络分析:交通便捷性评价方法深度对比在空间规划与城市研究中,交通便捷性评价一直是核心议题。无论是商业选址、公共服务设施布局,还是居住区开发,都需要精确量化不同位置的交通可达性。ArcGIS …

📅 2026/10/25 14:48:55
Rust Cargo 1.80 项目结构实战:3种Crate类型与Workspace配置详解

Rust Cargo 1.80 项目结构实战:3种Crate类型与Workspace配置详解

Rust Cargo 1.80 项目结构实战:3种Crate类型与Workspace配置详解当你的Rust项目从简单的单文件脚本成长为包含多个组件的中大型系统时,如何组织代码结构就成为了一个关键问题。Cargo作为Rust的构建系统和包管理器,提供了三种核心的项目组织方…

📅 2026/10/19 3:58:03
多模态AI集成实战:硅基流动平台解决开发痛点

多模态AI集成实战:硅基流动平台解决开发痛点

最近在测试各种AI工具时,我发现一个很有意思的现象:很多开发者都在寻找既能快速上手、又具备深度定制能力的AI服务。特别是当需要集成视觉、音频等多模态能力时,传统的单一模型往往难以满足复杂需求。 就在上周,我在测试一个智能…

📅 2026/10/6 8:02:09
MORE NEWS

更多资讯

📰

线上英语教学工具怎么选?2026最新避坑清单

【摘要】线上英语教学工具越来越多,选错了不仅浪费预算,还会打乱教学节奏。这篇文章从一线教学场景出发,拆解工具选型的几个核心维度,包括课前备课、课中互动、课后批改和数据反馈,同时整理了一份实操层面的避坑清单&a…

📰

英语薄弱知识点,2026年最新培优课怎么选?

摘要:英语培优选课的关键不在功能多,而在诊断准。 本文从英语薄弱知识点的真实成因切入,拆解2026年培优课选型的三个硬指标:诊断颗粒度、训练闭环完整度、内容本地化匹配度,并结合天学网英语培优体系的技术逻辑做客观分…

📰

英语写作批改工具,最新5个避坑挑选要点

上学期期末,我帮一个英语教研组看他们新采购的批改系统。打开后台那一刻我愣住了——三万多字的批改记录里,超过六成标注都是“主谓一致”“拼写错误”这类表层问题。老师们花了钱、花了培训时间,最后拿到手的还是一份高级版语法检查器。这事…

📰

拍拍贷风控数据集7z解压与特征工程实战指南

简介:这份资源是拍拍贷风控大赛的实战数据集,面向金融风控方向的学习者、数据挖掘竞赛选手及信用评分建模从业者,用于练习用户违约预测与信用评估全流程。压缩包共176个文件,约37.37MB,以csv数据表为主,涵盖…

📰

AZ-900必过考试真题怎么刷?从背题到理解的备考方法全解析

简介:一份面向微软AZ-900认证考生的考试真题合集,内容以docx文档形式整理,收录了具有代表性的模拟试题及详细解析。资料逐题剖析PaaS平台不提供操作系统直接访问、但支持自动扩展等关键特性,并解释云成本从资本性支出(…

📰

AI Agent时代的Shell:重新定义命令行交互与自动化

1. 为什么一个用了十几年的老工具,突然想聊“下一代”在终端里泡了十几年,我一直觉得 Shell 是一个“用起来很痛、但离不开”的东西。最近两个月,我密集使用了几款 AI 编程工具和命令行代理,一个念头越来越强烈:Shell …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬