Python 中的运算符优先级和结合性2024 年 8 月 29 日 | 5 分钟阅读 在本教程中,我们将了解 Python 运算符的优先级和结合性。理解 Python 运算符的工作原理对于开发人员至关重要。 读者最好在检查完 Python 如何评估其运算符顺序后,理解其机制。有些运算符的优先级高于其他运算符;例如,除法运算符的优先级高于乘法运算符;因此,除法先执行。 在给定的任何逻辑或算术表达式中,Python 解释器会先执行优先级较高的运算符。除了指数运算符(**)之外,所有其他运算符都从左到右执行。 Python 运算符优先级表达式是由数字、变量、运算符以及内置或用户定义的函数调用组成的集合。Python 解释器可以求值一个有效的表达式。 代码 输出 -5 这里以表达式 2 - 7 为例。在表达式中,我们可以添加多个运算符。Python 中有一个优先级原则来求值这类表达式。它指导着任务完成的顺序。 例如,除法比加法优先级高。 代码 输出 24.0 然而,我们可以通过使用括号 () 来反转这个顺序,括号的优先级高于除法。 代码 输出 16.0 下表显示了 Python 运算符的优先级。它是按降序排列的(上面的运算符比下面的运算符具有更高的优先级)。
考虑以下示例 假设我们正在构建一个 if...else 块,只有当颜色是红色或绿色且数量大于或等于 5 时才会执行。 代码 输出 Your parcel is dispatched 即使数量为 0,此程序也会运行 if 块。因为 and 的优先级高于 or,所以结果不符合预期。 通过适当使用括号 (),我们可以得到所需的结果。 代码 输出 Your parcel cannot be dispatched Python 运算符结合性我们可以从上面的列表中看到,某个类别中包含许多运算符。这些运算符的顺序是相同的。 当两个运算符具有相同的优先级时,结合性有助于确定操作的顺序。 具有多个具有相同优先级的运算符的给定表达式的求值方向就是结合性。几乎所有运算符都是从左到右结合的。 代码 输出 12 12 注意:在 Python 中,指数运算 ** 具有从右到左的结合性。代码 输出 6561 729 非结合性运算符在 Python 中,一些运算符(如比较运算符或赋值运算符)没有这样的结合性规则。这类运算符的模式有其自身的规则,无法用结合性来表示。例如,a < b < c 不等同于 (a < b) < c 或 a < (b < c)。a < b < c 是从左到右求值的,等同于 a < b and b < c。 此外,在链接赋值运算符(如 a = b = c = 3)时是完全可以接受的,但 a = b = c += 2 是不可接受的。 代码 输出 a = b = c += 2
^
SyntaxError: invalid syntax
因此,此运算符不遵循从左到右的结合性。 下表显示了各种 Python 运算符的结合性。
在 Python 中,我们如何保留运算符优先级?你是否听说过算术中的 BODMAS 规则? 答案无疑是肯定的! BODMAS 是括号、顺序、除法、乘法、加法和减法的缩写。当方程中存在各种算术运算时,此规则指定了它们应计算的顺序。 如果我们查看上面给出的优先级图表,我们会注意到运算符的顺序如下: 括号 - 指数 - 乘法 - 除法 - 加法 - 减法 PEMDAS 是此规则的缩写,它与 BODMAS 类似。 结论在本教程中,我们学习了: 优先级规则决定了方程中各种运算符的执行顺序。 结合性规则决定了方程中多个相同级别或具有相同优先级的运算符如何使用的顺序。 下一主题Python 非官方库 |
在本教程中,我们将学习指状搜索树数据结构,并讨论其优缺点。我们还将了解其在 Python 中的实现。指状搜索树是一种专门的数据结构,旨在高效地搜索和访问数据集中的数据……
阅读 8 分钟
为什么为本项目使用 Python?多年来,Python 在数据科学领域赢得了超级巨星的地位。所有数据爱好者都喜爱它,它为统计科学和机器学习提供了简单的入门。对于具有挑战性的数据科学项目,有许多内置库,它们是...
阅读 17 分钟
当今世界,我们都熟悉 PDF 文件,因为它们是使用最广泛的数字文档格式之一。pdf 的全称是“便携式文档格式”,它使用“.pdf”扩展名保存文档文件。这独立于...
11 分钟阅读
Python 是一种动态类型语言,这意味着我们无需在使用变量之前提及变量类型或声明。这使得 Python 成为最有效和易于使用的语言。Python 中的每个变量都被视为一个对象。在声明变量之前,我们必须...
阅读 2 分钟
在本教程中,我们将了解 Google 的 Protobuf 以及如何使用 Python 编程语言实现它。假设有一群来自不同起源的人,他们说不同的语言。为了有效沟通,他们尝试使用一种每个人都能理解的语言……
阅读 8 分钟
创建自己的 Python 模块似乎有点困难,但如果我们说创建或编写 Python 程序是一个非常简单的任务呢?在本教程中,我们将编写一个 Python 模块,并在编写之后,我们……
阅读 4 分钟
Bokeh 是一个用于数据可视化的 Python 库。它使用 HTML 和 JavaScript 语言创建其绘图,并且它还针对现代网站浏览器,以提供优雅的演示、新颖图形的简洁构建以及良好的高性能交互性。在本教程中,我们将学习如何...
阅读 3 分钟
在下一个教程中,我们将讨论一个名为 LanguageTool 的 Python 包,并了解如何使用 Python 编程语言创建一个简单的语法和拼写检查器。那么,让我们开始吧。了解 Python 中的 LanguageTool 库 LanguageTool 是一个用于语法和拼写检查的开源工具,...
7 分钟阅读
子集是属于另一个称为“超集”的集合的元素集合。在 Python 中,子集可以用列表、元组或任何其他可迭代对象来表示。要检查子集是否包含在超集中,您可以使用 issubset 方法...
阅读 4 分钟
Python的for循环用于遍历序列。它将一段代码重复n次。考虑以下for循环的流程图。流程图 Python的for循环可以以两种方式使用。使用序列 使用range()函数 使用序列 序列指的是列表、集合、字符串、元组等...
阅读 2 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。

我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India