学Python——第八课 运算赋值、比较、算符优先级

​    赋值号(=)前有双目(两个操作数)运算符(+-*/>><<&|^等):

运算赋值的左变量必须已经有初值:

    运算赋值是计算机里特有的,这与计算机运算优化有关。简单说,使用运算赋值(例如:a=1 a+=1)比不使用运算赋值(例如:a=1 a=a+1)的运算速度快。至于为什么快,只有你们深入学习电脑知识,才能明白其中的奥妙。

 

    比较运算(><>=<===!=):

比较运算的结果是逻辑值(真True或假False),一般用于条件转移语句。

 

    计算2<<1+1<<1+1的值:2<<1=41<<1=24+2+1=7。用Python计算看看:

错了,是32。它是怎样算的呢?2<<1+1<<1+1=2<<2<<2=32,先算加法,再算移位。显然,加法的优先级比移位高。那么我们学过的算符的优先级是如何排列的呢?

Python 部分运算符优先级和结合性

运算符说明

Python运算符

优先级

结合性

优先级顺序

小括号

( )

19


︿
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 |
 | 
 |
 |

乘方

**

16

按位取反

~

15

符号运算符

+(正号)、-(负号)

14

乘除

*(乘)、/(除)、//(整除)、%(求余数)

13

加减

+、-

12

位移

>>(右移)、<<(左移)

11

按位与

&

10

按位异或

^

9

按位或

|

8

比较运算符

==(相等)、!=(不等)、>(大于)、>=(大于等于)、<(小于)、<= (小于等于)

7

逻辑非

not

4

逻辑与

and

3

逻辑或

or

2

注:结合性就是同级运算符时的计算顺序,左:从左到右计算;右:从右到左计算。

    锦囊:括号(),括号应用最广,当你记不清算符的优先级时,务必加上括号()。上面那题如果写成这样 (2<<1)+(1<<1)+1,就会保证结果是7了: