返回顶部
首页 > 资讯 > 后端开发 > Python >Python运算符优先级详细整理
  • 726
分享到

Python运算符优先级详细整理

Python 官方文档:入门教程 => 点击学习

摘要

目录前言优先级概述相同优先级结合性运算符优先级一览表 运算符优先级重点说明结语前言 虽然本文讲的是python,但其实它也适用于所有的编程语言。因为这里面蕴含着编程之魂。所

前言

虽然本文讲的是python但其实它也适用于所有的编程语言。因为这里面蕴含着编程之魂。所以本文标题没有显著的使用Python关键词。当然以前的文章用了Python关键词是因为当时我并没有想到这一点,很多内容也适用所有编程语言

本文是运算符相关教程的最后一篇,将介绍运算符的最后一个汇总性的概念——运算符的优先级。

优先级概述

所谓优先级,是指优先计算的顺序。比如小学中我们学过的加减乘除基本四则运算,乘除要先于加减计算,因为乘除的优先级比加减要高。小括号拥有最高优先级,如果想先计算加减,可用小括号将其包围起来,在Python中也是如此,很显然,计算顺序不同,其结果也是不同的:

相同优先级

有些运算是互逆的,交换它们的位置不影响运算结果,所以区分它们的优先级是没有必要的,比如加和减(包括正号和负号)、乘和除、左移和右移、is与is not、in与not in。这些运算符都具有相同的优先级。

当然,有些运算符交换位置会影响结果,但它们本身只是表示同一种算法的不同结果,难以区分不同的优先级。比如比较运算符中的等于、大于、小于、不等于、大于等于、小于等于都具有相同的优先级。

需要特别注意的是,虽然Python支持诸如下例所示的连续的比较运算符:

a > b == c

但它其实是 a > b and b == c 的简略写法,而不是表示先进行计算 a > b ,然后用结果判断是否等于c,也不是判断a是否大于 b == c 的结果,下面的示例可以证明这点,无论哪个运算符先计算,其结果都与原始表达式结果不同,只有转换成两个表达式才一样(注:False等价于0,True等价于1):

这一点,对于<等其他比较运算符,规则也是如此。

当然,大多数运算符的优先级是不同的。

结合性

与运算符优先级相关的另一个重要概念是结合性,它决定了同一种运算符是从左往右计算,还是从右往左。下面是一个优秀的著名例子:

 它证明乘方运算的结合性是从右往左。

大多数运算符都是从左往右开始计算的,简称左结合性。只有少部分运算符具有右结合性。下面是右结合性运算符列表:

按位取反(位非)、正负号、位与、逻辑非、赋值系列运算符

运算符优先级一览表

其中上一行比下一行的优先级高,同一行表示优先级相同。在同一个表达式中,按照优先级从高到低依次计算,优先级相同则按照从左到右的顺序计算。同一类型的运算符则按结合性计算。

注:其中@为矩阵乘法运算符,大多数资料中都没有记录此运算符。官方文档记录:“The @ (at) operator is intended to be used for matrix multiplication. No builtin Python types implement this operator.”(@(at)运算符打算用于矩阵乘法。没有任何内置的Python类型可以实现此操作符。)

赋值系列运算符的优先级最低,比or还要低:

另外赋值运算符支持连续的赋值,这和比较运算符类似,但其实也是相当于两个分开的赋值,与优先级无关:

本表参考于python3.7.3官方文档:

Python3.10.4官方文档也一样,但是没有前者友好,顺序是相反的:

 运算符优先级重点说明

运算符优先级的概念并不需要去刻意地记忆,如果对某个运算符的优先级不太确定,可以使用小括号将其包围起来。

当然,记住一些重要的优先级概念,有助于对程序的阅读理解与编写维护。下面是一些重要的优先级:

小括号具有最高优先级。

运算符优先级按类别排序:算术 > 位 > 身份 >成员 > 比较 > 逻辑 > 赋值。 算术最高,赋值被低。位非运算符是个另外,它高于乘除。

身份、成员、比较、赋值运算符,同类中优先级相同。

算术运算符中:乘方最高,乘除整除取余次之,加减最低。

位运算符中:位非 > 左右移 > 位与 > 位异或 > 位或

逻辑运算符中:非最高,与次之,或最低。

另外,我没有听说过任何编程语言有降低运算优先级——与小括号功能正好相反的运算符。这应该是没有必要的,因为根据相对性原理,给一个运算符最高优先级,就相当于给其他运算符最低优先级了,所以,如果想给一个运算符最低的优先级,可以将其余的运算符全部用小括号包围起来。

最后,除了可以用于提高运算符的优先级之外,在Python中,小括号还有另外一个重要的功能——做为元组的定界符。

身为Python特有的四大基本数据类型之一,元组(tuple)已经在本教程中出现过很多次了,在以后还会出现更多次,所以,下一篇将正式介绍元组。敬请关注。

结语

通过本文的编写,我意识到自己对Python的认知还有很大的局限——我刚刚才得知Python中有@矩阵乘法运算符!

虽然我接触编程已有14年了,初识Python也有五六年了,使用Python编写的大大小小的程序工程也有近百个,但是如果不是今天对网上运算符优先级资料正确性的质疑,没有查看官方文档的话,不知道还要多少年之后才会得知这一点。

我以前无论找到的与运算符相关还是运算符优先级相关的Python资料都没有提到@,这也说明网上绝大部分的资料的正确性也需要证明。比如关于乘方运算符的右结合性,网络上大多资料都错误的记录为左结合性。

我写作这样的文章也很困难,因为我吹毛求疵的性格要求我必须写出全网独一无二的最优秀的精品内容,独一无二是很容易的,我的任何一篇文章都有自己独特的理解,并不是简单的对其他地方资料的搬运整合,最优秀就非常困难了,这不仅需要无私的分享精神,更需要卓越的洞察与理解能力,我正在朝这个方向努力。

如果不能做到这一点,我觉得就没有写出来的必要,虽然我的文章点击率很低,但最近的文章都有近十分之一的阅读收藏率证明了读者对它的认可,这也是头条给予1万推荐的原因所在,否则至多100个推荐就到头了。

到此这篇关于Python运算符优先级的文章就介绍到这了,更多相关Python运算符优先级内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python运算符优先级详细整理

本文链接: https://lsjlt.com/news/177074.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python运算符优先级详细整理
    目录前言优先级概述相同优先级结合性运算符优先级一览表 运算符优先级重点说明结语前言 虽然本文讲的是Python,但其实它也适用于所有的编程语言。因为这里面蕴含着编程之魂。所...
    99+
    2023-01-07
    python运算符优先级别 python运算符号的优先级别 运算符优先级Python
  • python运算符优先级表
    运算符 描述 lambda Lambda表达式 or 布尔“或” and 布尔“与” not x 布尔“非” in,not in 成员测试 is,is not 同一性测试 <,<=,>,...
    99+
    2023-01-31
    优先级 运算符 python
  • Java运算符优先级详解
    本篇内容介绍了“Java运算符优先级详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java运算符优先级详解 优先级是指同一式子中多个运算...
    99+
    2023-06-03
  • Java 运算符优先级
    在 Java 中,每个运算符都有一个优先级,优先级高的运算符会先执行,而优先级低的运算符会后执行。如果有多个运算符在同一个表达式中出现,那么需要按照运算符优先级的规则确定它们的执行顺序。 Java 运...
    99+
    2023-09-21
    java
  • 介绍python中运算符优先级
    下面这个表给出Python的运算符优先级,从最低的优先级(最松散地结合)到最高的优先级(最紧密地结合)。这意味着在一个表达式中,Python会首先计算表中较下面的运算符,然后在计算列在表上部的运算符。下面这张表(与Python参考手册中的那...
    99+
    2023-06-02
  • Python运算符优先级是怎样的
    这篇文章主要介绍“Python运算符优先级是怎样的”,在日常操作中,相信很多人在Python运算符优先级是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python运算符优先级是怎样的”的疑惑有所帮助!...
    99+
    2023-06-27
  • Python的条件语句与运算符优先级详解
    Python 条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非...
    99+
    2022-06-04
    优先级 语句 详解
  • python运算符优先级顺序怎么排
    Python运算符的优先级顺序从高到低如下:括号“()”、幂运算“**”、正负号“+, -”、乘除法“*, /, //, %”、加减法“+”、比较运算符“<, >, <=, >=, ==, !=”、逻辑非“not”、...
    99+
    2023-12-18
    python 运算符
  • 【从零学习python 】08.Python了解位运算符, 运算符优先级
    文章目录 位运算符(了解)练习 运算符优先级练习 总结:进阶案例 位运算符(了解) 按位运算符是把数字看作是二进制来进行计算的。 下表中变量 a 为 60,b 为 13,二进制...
    99+
    2023-08-31
    python 位运算 二进制操作 从零学python 小白必看 原力计划
  • 深入理解Python运算符:位移运算符、逻辑运算符和运算符优先级的实践手册
    进阶Python运算符的应用:位移运算符、逻辑运算符、运算符优先级的实践指南 Python是一门广泛应用于各个领域的高级编程语言,而掌握其中的运算符的使用是非常重要的。除了基本的算术运算符,Python还提供了许多其他类型的运算...
    99+
    2024-01-20
    优先级 逻辑运算符 位移运算符
  • C#运算符的优先级介绍
    这篇文章主要讲解了“C#运算符的优先级介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#运算符的优先级介绍”吧!C#提供大量运算符,这些运算符是指定在表达式中执行哪些操作的符号。通常允许...
    99+
    2023-06-18
  • JavaScript运算符优先级实例分析
    这篇文章主要介绍“JavaScript运算符优先级实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript运算符优先级实例分析”文章能帮助大家解决...
    99+
    2024-04-02
  • php运算符优先级是怎样的
    这篇文章主要介绍php运算符优先级是怎样的,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在php运算中遵循的规则就是:优先级高的运算符优先执行,优先级低的运算符后执行。在同一优先级的情况下,自左向右执行。当然也可以像...
    99+
    2023-06-14
  • VBS中运算符优先级的介绍
    本篇内容主要讲解“VBS中运算符优先级的介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“VBS中运算符优先级的介绍”吧!运算符优先级在一个表达式中进行多个运算时,每一部分都会按预先确定的顺序进...
    99+
    2023-06-08
  • 详解Go语言中运算符的优先级排序
    Go 语言中运算符的优先级排序在 Go 语言中,有一些运算符用于执行各种操作,例如算术运算、逻辑运算、位运算等。这些运算符都有不同的优先级,了解这些运算符的优先级是编写高效和准确的代码的关键之一。本文将详细讨论 Go 语言中各种运算符的优先...
    99+
    2023-12-23
    优先级排序
  • Python运算符优先级顺序详解及常见错误避免
    深入解析Python运算符优先级顺序,避免常见错误 Python语言中的运算符优先级是控制表达式中各个运算符执行顺序的规则。在编写代码时,正确理解和使用运算符优先级是非常重要的,否则会出现不可预料的错误。 在Python中,运算...
    99+
    2024-01-20
  • 揭示Go语言运算符优先级的奥秘:揭示顶级优先级
    深入探究Go语言运算符优先级,揭示顶级优先级是什么,需要具体代码示例 在Go语言中,运算符优先级是指不同运算符之间的执行顺序。了解运算符的优先级对于正确理解和书写代码至关重要。本文将深入探究Go语言中的运算符...
    99+
    2024-01-18
    Go语言 运算符优先级 深入探究
  • 优雅编写代码:灵活运用Python运算符优先级顺序
    灵活应用Python运算符优先级顺序,编写更优雅的代码 Python是一种功能强大的编程语言,具有丰富的运算符和表达式。在编写Python代码时,正确使用运算符的优先级顺序可以使代码更加简洁和易读。本文将介绍如何灵活应用Pyth...
    99+
    2024-01-20
    编程关键词 更优雅的代码编写
  • JavaScript中运算符的优先级是什么
    这篇文章给大家分享的是有关JavaScript中运算符的优先级是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。运算符的优先级由高到低:() 优先级最高一元运算符 ++ – !...
    99+
    2024-04-02
  • JS中的运算符的优先级介绍
    这篇文章主要介绍“JS中的运算符的优先级介绍”,在日常操作中,相信很多人在JS中的运算符的优先级介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS中的运算符的优先级介绍”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作