2.4 运算符
在Python中,为了实现项目的某一需求或具体功能,需采用运算符和表达式将变量、字符串等关系进行组合并表达出来。Python中的运算符有算术运算符、比较运算符、逻辑运算符、赋值运算符、位运算符、成员运算符(in、not in)、身份运算符(is、is not)。
2.4.1 算术运算符
在Python中主要有+(加)、-(减)、∗(乘)、/(除)、%(求余)、//(取整)、∗∗(幂)这几个算术运算符。应用举例如下:
#ch02d004.ipynb 9+2 #11 9-2 #7 9 * 2 #18 9/2 #4.5 9%2 #1 9//2 #4 9 * *2 #81
运算的优先级,先乘除后加减,括号优先;同一优先级按从左到右的顺序运行。应用举例如下:
2+3 * 4 #14 (2+3)* 4 #20 2 * 3+2 * 4 #14
2.4.2 赋值运算符
在Python中主要有=(赋值)、+=(加赋值)、-=(减赋值)、∗=(乘赋值)、/=(除赋值)、%=(取余数赋值)、//=(取整除赋值)、∗∗=(幂赋值)这几个赋值运算符。
+=(加赋值)应用举例,代码如下:
a = 9 b = 2 a+ = b #a = a+b a #11
-=(减赋值)应用举例,代码如下:
a = 9 b = 2 a- = b #a = a-b a #7
∗=(乘赋值)应用举例,代码如下:
a = 9 b = 2 a * =b #a=a * b a #18
/=(除赋值)应用举例,代码如下:
a = 9 b = 2 a/ = b #a = a/b a #4.5
%=(取余数赋值)应用举例,代码如下:
a = 9 b = 2 a% = b #a = a%b a #1
//=(取整除赋值)应用举例,代码如下:
a = 9 b = 2 a// = b #a = a//b a #4
∗∗=(幂赋值)应用举例,代码如下:
a = 9 b = 2 a * * =b #a=a * * b a #81
2.4.3 比较运算符
在Python中主要有==(等于)、!=(不等于)>=(大于或等于)、<=(小于或等于)、>(大于)、<(小于)这几个比较运算符,返回的值为布尔值True与False。
应用举例,先创建变量a和b,代码如下:
a = 9 b = 2
对变量a和b进行比较运算,代码如下:
a = = b #False a! = b #True a> = b #True a< = b #False a>b #True a<b #False
2.4.4 逻辑运算符
Python中的布尔逻辑运算符是and(与)、or(与)和not(非),3种逻辑运算的优先级为not>and>or,代码如下:
True #True False #False not True #False not False #True True and False #False 5< 10 and 3>4 #False True or False #True 5< 10 or 3>4 #True True and True #True 3 = = 3 and None! = 3 #True True and False #False True and 3>4 #False
以上代码返回值所用逻辑运算见表2-5。
表2-5 逻辑运算
2.4.5 位运算符
位运算符是把数字看成二进制数进行计算。Python中的位运算符有&(位与)、|(位或)、^(位异或)、~(位取反)、<<(位左移)、>>(位右移)位运算符。在进行位运算之前需先将相关数值转换为二进制,然后进行计算。
以(十进制)数字2002及1999为例,这两个十进制数字对应的二进制数字分别为0111 1101 0010、0111 1100 1111。对2002及1999进行位与运算,代码如下:
2002&1999
返回的十进制数字为1986(对应的二进制数字为0111 1100 0010)。相关运算过程如图2-2所示。
应用举例,以(十进制)数字5向左移8位为例,代码如下:
5<<8 #左移动运算符 #1280
在移位的过程中,左边(高位端)溢出的位会被丢弃,右边(低位端)的空位会被补0。(十进制)数字5对应的二进制数字为0101,左移位补0后的二进制数字为0101 0000 0000(对应的十进制数字为1280)。相关运算过程如图2-3所示。
图2-2 运算过程1
图2-3 运算过程2