Python运算符优先级

在Python编程语言中,运算符的优先级是指在一个包含多个运算符的表达式中,哪个运算符应该先被执行。例如,在表达式“a + b * c”中,Python会优先执行乘法运算,然后再进行加法运算。本教程对 Python 中运算符的优先顺序进行了总结。

一、运算符优先级

下表对 Python 中运算符的优先顺序进行了总结,从最高优先级(最先绑定)到最低优先级(最后绑定)。 相同单元格内的运算符具有相同优先级。 除非语法显式地指明,否则运算符均为双目运算符。 相同单元格内的运算符从左至右组合的(只有幂运算符是从右至左组合的)。

请注意比较、成员检测和标识号检测均为相同优先级,并具有如《Python比较运算》所描述的从左至右串连特性。

运算符 描述
(expressions...),

[expressions...], {key: value...}, {expressions...}

绑定或加圆括号的表达式,列表显示,字典显示,集合显示
x[index], x[index:index], x(arguments...), x.attribute 抽取,切片,调用,属性引用
await x await 表达式
** 乘方 5
+x, -x, ~x 正,负,按位非 NOT
*, @, /, //, % 乘,矩阵乘,除,整除,取余 6
+, - 加和减
<<, >> 移位
& 按位与 AND
^ 按位异或 XOR
| 按位或 OR
in, not in, is, is not, <, <=, >, >=, !=, == 比较运算,包括成员检测和标识号检测
not x 布尔逻辑非 NOT
and 布尔逻辑与 AND
or 布尔逻辑或 OR
if -- else 条件表达式
lambda lambda 表达式
:= 赋值表达式

二、运算符优先级顺序

Python 运算符优先级从高到低如下:

1、**:幂运算

2、~, +, -:按位取反,正号,负号

3、*, /, %, //:乘,除,取模,整除

4、+, -:加,减

5、<<, >>:左移,右移

6、&:按位与

7、^:按位异或

8、|:按位或

9、==, !=, >, >=, <, <=, is, is not, in, not in:比较运算符,包括身份运算符和成员运算符

10、not:布尔“非”

11、and:布尔“与”

12、or:布尔“或”

三、结合性

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

>>>2**2**23
256
>>>(2++2)**3
64
>>>2**(2**3)
256

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

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

广告合作
QQ群号:707632017

温馨提示:

1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com。(#改为@)

2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。

目录