365bet体育在线世界杯-365bet大陆-365手机安全卫士下载

— 怀旧经典 · 永恒记忆 —

Python运算符的优先级和结合性¶

Python运算符的优先级和结合性¶

Python运算符的优先级和结合性¶

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

Python运算符优先级¶

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

例如, 对于表达式a + b * c, Python会先计算乘法再计算加法, 因为*的优先级高于+.

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

Python运算符优先级和结合性一览表¶

运算符说明

Python运算符

优先级

结合性

小括号

()

19

索引运算符

x[i]或x[i1:i2[:i3]]

18

属性访问

x.arrtibute

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

逗号运算符

,

1

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

建议:

不要把一个表达式写得过于复杂, 如果一个表达式过于复杂, 可以尝试把它拆分来书写;

不要过多地依赖运算符的优先级来控制表达式的执行顺序, 这样可读性太差, 应尽量使用()来控制表达式的执行顺序.

Python运算符结合性¶

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

例如, 对于表达式100 / 25 * 16, /和*的优先级相同, 应该先执行哪一个呢?

这个时候就不能只依赖运算符优先级决定了, 还要参考运算符的结合性.

/和*都具有左结合性, 因此先执行左边的除法, 再执行右边的乘法, 最终结果是64.

Python中大部分运算符都具有左结合性, 也就是从左往右执行;

只有单目运算符(例如not逻辑运算符), 赋值运算符和三目运算符例外, 它们具有右结合性, 也就是从右往左执.

总结¶

当一个表达式中出现多个运算符时, Python会先比较各个运算符的优先级, 按照优先级从高到低的顺序依次执行;

当遇到优先级相同的运算符时, 再根据将结合性决定先执行哪个运算符: 如果是左结合性就先执行左边的运算符, 如果是右结合性就先执行右边的运算符.

相关推荐

365bet体育在线世界杯 圣杯战争三期-测试战匹配结果公示

圣杯战争三期-测试战匹配结果公示

📅 01-20 👁️ 7382
365bet大陆 英国 / 英國的科比

英国 / 英國的科比

📅 07-06 👁️ 8002
365bet大陆 原创ons模拟器怎么用-ons模拟器使用教程

原创ons模拟器怎么用-ons模拟器使用教程

📅 07-25 👁️ 2747
365bet大陆 未知尚有多少路打一成语

未知尚有多少路打一成语

📅 09-07 👁️ 8683
365bet体育在线世界杯 “把观众作为方法”:傩面具艺术展览的策划思路与探索

“把观众作为方法”:傩面具艺术展览的策划思路与探索

📅 02-04 👁️ 9864
365bet体育在线世界杯 Dubbo(2)Dubbo的核心组件有哪些?

Dubbo(2)Dubbo的核心组件有哪些?

📅 08-28 👁️ 6529
365bet大陆 简单借款身份审核多久

简单借款身份审核多久

📅 01-10 👁️ 6729
365手机安全卫士下载 为什么叫透天凉?为什么叫烧山火?

为什么叫透天凉?为什么叫烧山火?

📅 07-18 👁️ 4322
365bet体育在线世界杯 几种弹弓特点分析

几种弹弓特点分析

📅 08-11 👁️ 1921