python优先级与结合性
栏目分类:Python教程 发布日期:2020-01-13 浏览次数:次
优先级与结合性
如果给出一个同时含有加减运算符和乘除运算符的表达式,我们都知道要先算乘除后算加减,这是因为乘除运算符具有高于加减运算符的优先级,由此可见运算符的优先级可以理解为在一个表达式中不同运算符计算的先后顺序,即优先级高的运算符先计算,优先级低的运算符后计算。而结合性是在运算符优先级相同的表达式中,规定表达式的计算方向,或自左向右,或自右向左。
优先级顺序表
我们上一节将运算符做了分类,比如算术运算符、逻辑运算符等等,但并不是一类的运算符就有完全相同的优先级。这里给出我们之前介绍过的所有运算符优先级顺序,以及一些我们后续会遇到的一些常用的其他运算符优先级,方便各位深入学习后回到这里查阅。
说明
上述运算符中按照优先级列数字递增,优先级依次增大,除了赋值运算符的结合性是自右向左外,其余运算符的结合性均自左向右,其中“圆括号”具有最高优先级,可以强制提高表达式中某一部分的优先级。
下面给出一些例子:
请用自己动手实验上述代码。
如果给出一个同时含有加减运算符和乘除运算符的表达式,我们都知道要先算乘除后算加减,这是因为乘除运算符具有高于加减运算符的优先级,由此可见运算符的优先级可以理解为在一个表达式中不同运算符计算的先后顺序,即优先级高的运算符先计算,优先级低的运算符后计算。而结合性是在运算符优先级相同的表达式中,规定表达式的计算方向,或自左向右,或自右向左。
优先级顺序表
我们上一节将运算符做了分类,比如算术运算符、逻辑运算符等等,但并不是一类的运算符就有完全相同的优先级。这里给出我们之前介绍过的所有运算符优先级顺序,以及一些我们后续会遇到的一些常用的其他运算符优先级,方便各位深入学习后回到这里查阅。
优先级 | 运算符 | 描述 | 要求操作数个数 | 类别 |
1 | Lambda | lambda表达式 | 其他运算符 | |
2 | =,-=,+=,/=,//=,*=,%=,**=, | 赋值 | 赋值运算符 | |
3 | or | 逻辑“或” |
2 双目运算符 |
逻辑运算符 |
4 | and | 逻辑“与” | ||
5 | not | 逻辑“非” | 1-单目运算符 | |
6 | in,not in |
2-双目运算符 |
||
7 | is,is not | |||
8 | <,<=,>,>=,!=,== | 比较两边大小 | 比较运算符 | |
9 | | | 按位“或” |
位运算符 |
|
10 | ^ | 按位“异或” | ||
11 | & | 按位与“” | ||
12 | <<,>> | 左移,右移 | ||
13 | +,- | 加、减 |
算术运算符 |
|
14 | *,/,%,// | 乘,除,取余,取整除 | ||
15 | ** | 指数 | ||
16 | . | 对象属性 |
其他运算符 |
|
17 | [ ] | 容器下标 | ||
18 | () | 圆括号 |
说明
上述运算符中按照优先级列数字递增,优先级依次增大,除了赋值运算符的结合性是自右向左外,其余运算符的结合性均自左向右,其中“圆括号”具有最高优先级,可以强制提高表达式中某一部分的优先级。
下面给出一些例子:
请用自己动手实验上述代码。
本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/jiaocheng/Python/2020/0113/506.html