从Excel到Python数据分析:Pandas、xlwings、openpyxl、Matplotlib的交互与应用
上QQ阅读APP看书,第一时间看更新

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