Python运算符列表及其优先顺序、结合性

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



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


相同单元格内的运算符均从左至右分组。但是,小部分运算符是从右至左分组运算,如赋值运算、幂运算、逻辑非运算、位与运算、位非运算、符号运算、条件表达式,右侧会先于左侧被求值,具体列表可参考下表“结合性”一列说明。


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


  • Python 运算符优先级
  • Python 运算符结合性
    注意,比较、成员检测和标识号检测均为相同优先级,并具有从左到右串连特性。


一、Python运算符列表




二、Python 运算符优先级


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


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


我们再尝试分析下面表达式的结果:


4+4<<2


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


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


(4+4) << 2


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

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


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


三、Python 运算符结合性


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


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


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



四、小结


当一个表达式中出现多个运算符时,Python 会先比较各个运算符的优先级,按照优先级从高到低的顺序依次执行;当遇到优先级相同的运算符时,再根据结合性决定先执行哪个运算符:如果是左结合性就先执行左边的运算符,如果是右结合性就先执行右边的运算符。


目录
相关文章
|
1天前
|
存储 大数据 数据处理
Python 中的列表推导式与生成器:特性、用途与区别
Python 中的列表推导式与生成器:特性、用途与区别
8 2
|
10天前
|
存储 索引 Python
深度解密 Python 列表的实现原理
深度解密 Python 列表的实现原理
41 13
|
7天前
|
开发者 索引 Python
探索Python中的列表推导式
【9月更文挑战第33天】本文通过直观的示例和代码片段,深入浅出地介绍了Python中强大的功能——列表推导式。我们将从基础概念出发,逐步深入到高级应用,最后探讨其性能考量。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。
16 8
|
5天前
|
数据处理 开发者 Python
Python编程中的列表推导式:简洁而强大的工具
【9月更文挑战第35天】在Python的众多特性中,列表推导式以其简明扼要和强大功能脱颖而出。本文不仅将介绍列表推导式的基础知识,还将探讨其背后的逻辑,并辅以实际代码示例。无论你是初学者还是有经验的开发者,都能从中获取新的见解和应用技巧。
14 5
|
1天前
|
数据处理 Python
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
Python编程-利用datetime模块生成当前年份之前指定的间隔所有年份的日期列表和csv文件
|
2天前
|
存储 大数据 Python
Python 中的列表推导式和生成器
Python 中的列表推导式和生成器
5 1
|
10天前
|
Python
探索Python中的列表推导式
【9月更文挑战第30天】在编程的世界里,简洁和高效总是我们追求的目标。Python的列表推导式正是这样一把利器,它允许我们在一行代码中生成列表,既清晰又高效。本文将深入浅出地介绍列表推导式的基础知识、高级技巧以及如何避免常见的陷阱,让你的代码更加优雅。
|
11天前
|
索引 Python
python列表删除元素
python列表删除元素
22 1
|
1天前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
|
1天前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (二)
Python操作:字符串--列表--元组--字典--运算符 (二)
10 0