Python 复合条件表达式中的短路

本文介绍了 python 复合条件表达式中的短路求值如何通过在结果确定后立即停止求值来提高效率。

要理解 python 中复合条件表达式中的短路概念,熟悉逻辑运算符“and”和“or”非常重要。下表总结了这些运算符的逻辑结果。

表 1
“与”和“或”运算符
Python 复合条件表达式中的短路
注意:来自模块 3:了解 python 决策控制结构,its320:基础编程,科罗拉多州立大学全球分校,2024 年。2024 年 2 月 25 日修改。

在 python 中,复合条件表达式上下文中的短路是指一旦逻辑表达式结果确定,解释器就停止计算逻辑表达式(severance,2016)。

换句话说,在读取逻辑表达式的过程中,如果解释器在到达表达式末尾之前就可以确定表达式的结果,则会停止读取表达式。注意:解释器是从左到右读取的.

在表达式中使用运算符“”和“”时会发生这种情况。这称为短路布尔评估。 (hrehirchuk 等人,2024)

立即学习“Python免费学习笔记(深入)”;

例如:

使用“and”运算符时:

a = 1b = 2c = 3d = 4if a  c and a < d:              #--- do something

当 python 解释器在步骤 a > c 停止计算逻辑表达式 a c 以及 c 返回 false。因此,表达式 a c 和 a false,表达式 a false 或 true 并不重要.

使用“或”运算符时:

a = 1b = 2c = 3d = 4 if a > b or a  d:            #--- Do something

当 python 解释器在步骤 a b 或 a d 时,就会发生短路,因为 b 或 a d 是 true,表达式 a> d 返回 falsetrue 并不重要。

当使用“and”和“or”逻辑运算符的组合时,and 运算符优先于 or 运算符。这类似于“ ”和“”之间的算术运算符优先级,其中“”优先于“ ”。下表描述了使用括号的逻辑运算符的优先级。

表 2
逻辑运算符的优先级
Python 复合条件表达式中的短路

注:摘自第 40 章布尔表达式和短路运算符 — 逻辑运算符的优先级,作者:kjell,n.d. 2024 年 2 月 25 日修改。

总之,当逻辑运算符 and 和 or 决定 python 解释器在结果明确后何时停止计算表达式时,就会发生短路。例如,当使用运算符 ‘and‘ 时,它会在第一个 false 处停止计算,而当使用运算符 ‘or‘ 时,它会在第一个 true 处停止,这提高了效率。因此,理解 python 中的短路求值对于编写高效且有效的条件表达式至关重要。

参考文献:

科罗拉多州立大学全球(2024)。 模块 3:理解 python 决策控制结构,its320:基础编程。 https://csuglobal.instructure.com/courses/88479/pages/module-3-overview?module_item_id=4620787

hrehirchuk, m.、chalmers, e.、curtis, c. 和 perri, p.(2024 年,1 月 30 日)。 5.11 短路评估。 python 编程基础:函数优先。符石学院。 https://runestone.academy/ns/books/published/foppff/conditionals_short-circuit-evaluation.htmllinks 到外部站点。

kjell,b.(日期不详)。第40章布尔表达式和短路运算符。 逻辑运算符的优先级。使用 java 介绍计算机科学。中央康涅狄格州立大学。 https://chortle.ccsu.edu/java5/notes/chap40/ch40_16.htmllinks 到外部站点。

severance, c.(2016 年,7 月 5 日)。 4.8.逻辑表达式的短路求值。_python for every-body-interactive_。符石学院。 https://runestone.academy/ns/books/published/py4e-int/conditional/shortcircuit.html

__

最初于 2024 年 8 月 19 日发表于 short-circuit in python’s compound conditional expressions – medium。

以上就是Python 复合条件表达式中的短路的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1354607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 18:40:25
下一篇 2025年12月13日 18:40:39

相关推荐

  • 干净的架构:从哪里开始?

    在上一篇文章中我们有: 我们的问题域:具有一些要求的 todo 应用程序配置为使用 python 和 python polylith 的基本存储库。 因此,一些决定已经完成。我们拥有一些工具并已经决定了存储库的外观。 这是我喜欢 polylith 的原因之一:无论您编码什么或您的组织有多大,所有存储…

    2025年12月13日
    000
  • Python日循环-使用范围函数和索引、任务

    斐波那契数列:1)使用3个变量: f, s = -1, 1t = 0while t<=13: t= f + s print(t,end= ' ') f,s = s, t 输出: 0 1 1 2 3 5 8 13 21 2) 使用 2 个变量: f, s = -1, 1 wh…

    2025年12月13日
    000
  • AoC &#- Day 仔细考虑(C# 和 Python)

    仔细考虑一下 今天的挑战我第一次看到regex时就尖叫起来,主要是因为每当我看到“提取该字符串的一部分”时,regex就是我的首选; 基本概念和要求 所以我们需要找到所有 mul(number1, number2) 并将它们相乘,但忽略所有其他字符。 所以我们需要找到一种机制来查找所有有效的 mul…

    2025年12月13日
    000
  • 了解 Python 语法和变量

    嘿,python 爱好者!如果您想深入了解 python 世界或提高自己的技能,那么掌握 python 的语法和变量是一个绝佳的起点。 python 以其简单性和可读性而闻名,使其成为各个级别开发人员的首选。在本指南中,我们将通过大量实际示例和最佳实践来阐明 python 语法和变量的基础知识。所以…

    2025年12月13日
    000
  • 打包 Python RPM

    最近,我正在为 Red Hat 工作的当前项目中执行一项非常具体的任务,即 RHEL LightspeedShellAI,这个项目相对较新,但我们想开始发货开发 RPM,让我们的 QE 朋友开始使用该工具并在他们的管道中进行测试。 我知道包装和一般Python东西的方法,但是伙计,我必须告诉你,这个…

    2025年12月13日
    000
  • python中decimal用法

    Decimal 模块:用于精确十进制数操作。为什么使用 Decimal?精确度:不会出现浮点数舍入误差。可比性:精确比较,避免浮点数比较误差。可转换性:轻松转换为其他数值类型。如何创建 Decimal 对象?从字符串创建:decimal.Decimal(string)从数字创建:decimal.De…

    2025年12月13日
    000
  • python中str的用法举例

    Python 中的 str 用于表示字符串,提供多种方法和属性操作和处理字符串。其用法举例包括:创建字符串、连接、复制、切片、查找和替换。str 类还提供有用属性,如长度、大小写、是否全部小写/大写的检查。 Python 中 str 的用法举例 str 是 Python 中用于表示字符串的内置数据类…

    2025年12月13日
    000
  • 1在python中的含义

    Python 中的 1 表示整数一,是 int 数据类型的一个实例,通常用十进制形式表示。它广泛用于算术运算、条件语句和数据结构中,例如:1 + 2 输出为 3,if 1 > 0 输出为 “1 大于 0″,1, 2, 3 输出为 1。 1 在 Python 中的含义 概…

    2025年12月13日
    000
  • python中九九乘法表怎么打

    Python中九九乘法表的实现方式有四种:列表生成式(最简洁);嵌套循环(稍低效);NumPy数组(高级矩阵操作);Pandas数据框(表状结构)。 Python中九九乘法表的实现 1. 列表生成式 最简洁的方式是使用列表生成式: result = [(i * j) for i in range(1…

    2025年12月13日
    000
  • python中//代表什么

    Python 中 // 表示地板除,是一种整数除法,结果为除法商的整数部分。它与标准除法(/)不同,后者始终返回浮点数,即使被除数和除数都是整数。地板除通常用于计算整数商,例如分割数组、求余数绝对值和计算重复次数。 Python 中 // 的含义 在 Python 中,// 表示除法运算的 地板除。…

    2025年12月13日
    000
  • python中grid的用法

    Python 中的 Tkinter 库中的网格小部件用于创建带有规则排列行和列的网格状布局,以便组织和对齐图形元素。要使用网格,可以使用以下步骤:使用 Grid 类创建网格。使用 rowconfigure() 和 columnconfigure() 方法配置行和列的属性。使用 grid() 方法将小…

    2025年12月13日
    000
  • python中/和//的区别

    在 Python 中,/ 和 // 都用于除法,但行为不同:/:浮点除法,返回浮点数结果。//:整数除法,返回整数结果,且总是正数。 Python 中 / 和 // 的区别 在 Python 中,/ 和 // 都是除法运算符,但它们的行为不同。 1. /:浮点除法 / 运算符用于浮点除法,返回一个浮…

    2025年12月13日
    000
  • python中score用法

    score() 函数在 Python NLTK 中用于计算文本的情感得分,介于 -1(负面)和 1(正面)之间。其用法如下:导入 SentiText 类。创建一个 SentiText 对象。使用 score() 方法计算文本的情感得分。 Python 中的 score 用法 score 是 Pyth…

    2025年12月13日
    000
  • 为什么 Spark 慢?

    为什么 spark 慢? 从一个引人注目的标题“spark 为什么这么慢?”开始,值得注意的是,称 spark“慢”可能意味着多种含义。聚合速度慢吗?数据加载?存在不同的情况。此外,“spark”是一个广泛的术语,其性能取决于编程语言和使用上下文等因素。因此,在深入讨论之前,让我们将标题改进得更加精…

    2025年12月13日
    000
  • AoC ‘- 日历史学家歇斯底里(C# 和 Python)#剧透

    今天的挑战非常简单: 第 1 部分:为了解决这个问题,我们必须 根据字符串输入创建 2 个数字列表,按升序排序对于list1中的每个数字,在list2中获取相同的索引,并找到两个数字之间的距离。 然后将距离相加 简单吧。 第 2 部分: 这有点棘手,但我的解决方案的主要概念是: 立即学习“Pytho…

    2025年12月13日
    000
  • 如何使用 Python 抓取 Google 搜索结果

    抓取 google 搜索可提供基本的 serp 分析、seo 优化和数据收集功能。现代抓取工具使这个过程更快、更可靠。 我们的一位社区成员撰写了此博客,作为对 crawlee 博客的贡献。如果您想向 crawlee 博客贡献此类博客,请通过我们的 discord 频道与我们联系。 在本指南中,我们将…

    2025年12月13日 好文分享
    000
  • 爬虫python怎么读

    Python 网页爬取可通过 requests 库获取响应内容,再用 BeautifulSoup 库解析 HTML 结构。首先导入 requests 库发送 HTTP 请求,然后导入 BeautifulSoup 库解析内容,可查找和提取 HTML 元素,从而获取网页内容。requests 库适用于发…

    2025年12月13日
    000
  • python爬虫怎么点按钮

    使用 Seleniumwebdriver 来模拟浏览器操作,通过单击元素的 ID 或 XPath 来点击按钮。步骤包括:安装 Seleniumwebdriver、导入模块、创建 WebDriver 实例、导航到页面、定位按钮(使用 find_element_by_id() 或 find_elemen…

    2025年12月13日
    000
  • python爬虫代码怎么操作

    如何操作 Python 爬虫代码?导入 Python 库(requests、BeautifulSoup);发送 HTTP 请求获得 HTML 代码;解析 HTML 代码形成树形结构;查找所需的 HTML 元素;提取所需的数据;对提取的数据进行处理;输出处理后的数据。 如何操作 Python 爬虫代码…

    2025年12月13日
    000
  • python 怎么验证反爬虫

    Python 中验证反爬虫措施的步骤包括:检查 HTTP 状态码;分析响应头;提取 капча;分析 JavaScript 行为;检查限速机制;使用代理;使用防浏览器检测工具库;人工验证。 如何验证 Python 中的反爬虫措施 在网络爬取过程中,网站通常会实施反爬虫措施来防止滥用或过量爬取。验证反…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信