快来看看Python运算符优先级和结合性一览表

这篇具有很好参考价值的文章主要介绍了快来看看Python运算符优先级和结合性一览表。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

优先级和结合性是 Python 表达式中比较重要的两个概念,它们决定了先执行表达式中的哪一部分。

Python 运算符优先级

所谓优先级,就是当多个运算符同时出现在一个表达式中时,先执行哪个运算符。

例如对于表达式a + b * c,Python 会先计算乘法再计算加法;b * c的结果为 8,a + 8的结果为 24,所以 d 最终的值也是 24。先计算*再计算+,说明*的优先级高于+

Python 支持几十种运算符,被划分成将近二十个优先级,有的运算符优先级不同,有的运算符优先级相同,请看下表。
 

表 1 Python 运算符优先级和结合性一览表
运算符说明 Python运算符 优先级 结合性 优先级顺序
小括号 ( ) 19
︿
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 | 
 |
 |
索引运算符 x[i] 或 x[i1: i2 [:i3]] 18
属性访问 x.attribute 17
乘方 ** 16
按位取反 ~ 15
符号运算符 +(正号)、-(负号) 14
乘除 *、/、//、% 13
加减 +、- 12
位移 >>、<< 11
按位与 & 10
按位异或 ^ 9
按位或 | 8
比较运算符 ==、!=、>、>=、<、<=  7
is 运算符 is、is not 6
in 运算符 in、not in 5
逻辑非 not 4
逻辑与 and 3
逻辑或 or 2
逗号运算符 exp1, exp2 1


结果表1中的运算符优先级,我们尝试分析下面表达式的结果:

4+4<<2

+的优先级是 12,<<的优先级是 11,+的优先级高于<<,所以先执行 4+4,得到结果 8,再执行 8<<2,得到结果 32,这也是整个表达式的最终结果。

像这种不好确定优先级的表达式,我们可以给子表达式加上( ),也就是写成下面的样子:

(4+4) << 2

这样看起来就一目了然了,不容易引起误解。

当然,我们也可以使用( )改变程序的执行顺序,比如:

4+(4<<2)

则先执行 4<<2,得到结果 16,再执行 4+16,得到结果20。

虽然 Python 运算符存在优先级的关系,但我不推荐过度依赖运算符的优先级,这会导致程序的可读性降低。因此,我建议读者:

  • 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,可以尝试把它拆分来书写。
  • 不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用( )来控制表达式的执行顺序。

Python 运算符结合性

所谓结合性,就是当一个表达式中出现多个优先级相同的运算符时,先执行哪个运算符:先执行左边的叫左结合性,先执行右边的叫右结合性。

例如对于表达式对于100 / 25 * 16/*的优先级相同,应该先执行哪一个呢?这个时候就不能只依赖运算符优先级决定了,还要参考运算符的结合性。/*都具有左结合性,因此先执行左边的除法,再执行右边的乘法,最终结果是 64。

Python 中大部分运算符都具有左结合性,也就是从左到右执行;只有 ** 乘方运算符、单目运算符(例如 not 逻辑非运算符)、赋值运算符和三目运算符例外,它们具有右结合性,也就是从右向左执行。表 1 中列出了所有 Python 运算符的结合性。

总结

当一个表达式中出现多个运算符时,Python 会先比较各个运算符的优先级,按照优先级从高到低的顺序依次执行;当遇到优先级相同的运算符时,再根据结合性决定先执行哪个运算符:如果是左结合性就先执行左边的运算符,如果是右结合性就先执行右边的运算符。文章来源地址https://www.toymoban.com/news/detail-704480.html

到了这里,关于快来看看Python运算符优先级和结合性一览表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言:运算符优先级

    一、优先级(常使用的运算符) 见表格 二、注意 总体原则:算术运算符 关系运算符 逻辑运算符 赋值运算符 同一级别下的运算符的运算次序由表达式的结合方向决定 运算符 注释 级别 ( ) 圆括号 1 [ ] 数组下标 1 后置++ 后置++ 2 后置-- 后置-- 2 前置++ 前置++ 3 前置-- 前置-- 3

    2024年02月11日
    浏览(37)
  • JavaScript运算符及优先级

    一、算数运算符 算术运算符(+,-, * ,/,%【重要】,++【重要】,--) 其中 + 的左边和右边有 \\\" \\\", 表示拼接 i++,表示先赋值后+1     ++i ,表示先+1后赋值  同理减法也是如此 算数运算中,+ 可以进行隐式迭代,将字符串数字转化为Number类型 二、比较算数运算符 比较运算

    2024年02月07日
    浏览(33)
  • C#常用运算符的优先级

    运算符在C#编程语言中扮演着重要的角色,用于执行各种计算和操作。了解运算符的优先级是编写高效和正确代码的关键。本文将深入探讨C#中38个常用运算符的优先级划分和理解,并提供详细的说明和示例,以帮助读者更好地理解运算符的使用。 算术运算符用于执行基本的数

    2024年02月05日
    浏览(38)
  • C语言运算符优先级(大全)

    🔺按照运算符的操作对象(变量或常量)的个数分为三类: 单目运算符 ; 双目运算符 ; 三目运算符 🔺注意:当优先级相同时,按结合方向来进行计算 1.(后缀运算符) 运算符 名称 [] 数组下标 () 圆括号 . 成员选择 - 成员选择 🔴结合方向从左到右 “.” 和 \\\"-\\\"多用在结构

    2024年02月06日
    浏览(35)
  • 运算符的优先级(规矩是人定的)

    什么是经典?经典就是理论不随时间变迁而变化。《东方不败》中的很多台词让人时不时想起来振聋发聩。比如 很多事情不是自己想的那样,规矩是人定的。 从小到大,我们都学过数学运算时要 先乘除后加减 ,谁定的? 舔狗说:“老师讲的都是对的,所以这样!”有思想

    2024年02月03日
    浏览(34)
  • C++所有运算符及其优先级表格

    运算符 运算符介绍 优先级 :: 范围解析 1 () [] - . 圆括号、方括号、箭头、点号 2 ++ -- 后缀递增、后缀递减 2 typeid const_cast dynamic_cast reinterpret_cast static_cast 类型名称、常量类型转换、动态类型转换、重新解释的类型转换、静态类型转换 2 ! ~ ++ -- + - * (type) sizeof new delete 非、按位

    2024年02月13日
    浏览(31)
  • C语言操作符详解+运算符优先级表格

       目录  前言 一、操作符是什么? 二、操作符的分类 三、算术操作符 四、逻辑操作符 五、比较操作符 六、位操作符 七、赋值操作符 八、其他操作符  九、运算符优先级表格 总结 在编写程序时,最常用到的就是操作符,本文将详细的介绍我们在编写程序时需要用到的操

    2024年01月18日
    浏览(43)
  • C语言--C运算符的优先级与结合性

             优先级 运算符 含义 运算类型 结合方向 1 ()   [ ]   -    . ++ -- 圆括号、函数参数表 数组元素下标 指向结构体成员 引用结构体成员 后缀增1、后缀减1 —— 自左向右 2 ! ~ ++  -- - * (类型标识符) sizeof 逻辑非 按位取反 前缀增1、前缀减1 取负 间接寻址运算符

    2024年02月16日
    浏览(28)
  • 正则表达式 运算符优先级与匹配规则 | 一看就懂!!!(四)

    目录 一、正则表达式 - 运算符优先级 (一)正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。 (二)相同优先级的从左到右进行运算,不同优先级的运算先高后低。 (三)下表从最高到最低说明了各种正则表达式运算符的优先级顺序:  二、正

    2024年02月12日
    浏览(36)
  • Python运算符列表及其优先顺序、结合性

    本文表格对Python中运算符的优先顺序进行了总结,从最高优先级(最先绑定)到最低优先级(最后绑定)。相同单元格内的运算符具有相同优先级。除非句法显式地给出,否则运算符均指二元运算。 相同单元格内的运算符均从左至右分组。但是,小部分运算符是从右至左分组

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包