官术网_书友最值得收藏!

2.3 運(yùn)算符的使用

編程里面的運(yùn)算符就好比我們數(shù)學(xué)里面的加減乘除等運(yùn)算法則,每一種編程語言的運(yùn)算符是大同小異的。Python支持以下類型的運(yùn)算符。


● 算術(shù)運(yùn)算符:計算兩個變量的加減乘除等計算法則。

● 比較(關(guān)系)運(yùn)算符:比較兩個變量的大小情況。

● 賦值運(yùn)算符:先計算后賦值到新的變量。

● 邏輯運(yùn)算符:與或非的邏輯判斷。

● 位運(yùn)算符:把數(shù)值看成二進(jìn)制來進(jìn)行計算。

● 成員運(yùn)算符:判斷字符串、元組、列表或字典中是否含有成員。

● 身份運(yùn)算符:用于比較兩個對象的存儲單位,比如判斷變量a和b在計算機(jī)的內(nèi)存地址是否一致。

2.3.1 算術(shù)運(yùn)算符

算術(shù)運(yùn)算符也就是我們常說的加減乘除法則,主要在程序里實現(xiàn)簡單的運(yùn)算。Python的算術(shù)運(yùn)算符如表2-2所示。

表2-2 Python的算術(shù)運(yùn)算符

根據(jù)上述算術(shù)運(yùn)算符,下面通過實例演示Python算術(shù)運(yùn)算符的具體操作,代碼如下:

    x = 8
    y = 5
    print('加法運(yùn)算符:', x+y)
    print('減法運(yùn)算符:', x-y)
    print('乘法運(yùn)算符:', x*y)
    print('除法運(yùn)算符:', x/y)
    print('取模運(yùn)算符:', x%y)
    print('冪運(yùn)算符:', x**y)
    print('取整運(yùn)算符:', x//y)

在PyCharm上運(yùn)行上述代碼,運(yùn)行結(jié)果如圖2-4所示。

圖2-4 算術(shù)運(yùn)算符的輸出結(jié)果

2.3.2 比較運(yùn)算符

比較(關(guān)系)運(yùn)算符是比較兩個變量之間的大小關(guān)系,而且兩個變量的數(shù)據(jù)類型必須相同,比較結(jié)果以True或者False返回。Python的比較(關(guān)系)運(yùn)算符如表2-3所示。

表2-3 Python的比較(關(guān)系)運(yùn)算符

我們將通過代碼來進(jìn)一步講述比較(關(guān)系)運(yùn)算符的具體操作,代碼如下:

    x = 2
    y = 3
    print('等于運(yùn)算符:', x==y)
    print('不等于運(yùn)算符:', x!=y)
    print('大于運(yùn)算符:', x>y)
    print('小于運(yùn)算符:', x<y)
    print('大于等于運(yùn)算符:', x>=y)
    print('小于等于運(yùn)算符:', x<=y)

上述代碼設(shè)置變量x和y,然后通過比較(關(guān)系)運(yùn)算符將兩變量進(jìn)行對比并將對比結(jié)果輸出。在PyCharm中運(yùn)行代碼,運(yùn)行結(jié)果如圖2-5所示。

圖2-5 比較運(yùn)算符的輸出結(jié)果

2.3.3 賦值運(yùn)算符

賦值運(yùn)算符是算術(shù)運(yùn)算符的一個特殊使用,其實質(zhì)是兩個變量進(jìn)行算術(shù)運(yùn)算并將運(yùn)算結(jié)果重新賦值到其中一個變量里。Python的賦值運(yùn)算符如表2-4所示。

表2-4 Python的賦值運(yùn)算符

根據(jù)上述的賦值運(yùn)算符,我們通過代碼的形式加以實現(xiàn)。由于每次賦值運(yùn)行后,變量x的數(shù)值會發(fā)生變化,因此執(zhí)行下次賦值運(yùn)算時必須重設(shè)變量x的數(shù)值。具體代碼如下:

    x = 5
    y = 2
    print('簡單的賦值運(yùn)算符:', x+y)
    x += y
    print('加法賦值運(yùn)算符:', x)
    x = 5
    x -= y
    print('減法賦值運(yùn)算符:', x)
    x = 5
    x *= y
    print('乘法賦值運(yùn)算符:', x)
    x = 5
    x /= y
    print('除法賦值運(yùn)算符:', x)
    x = 5
    x %= y
    print('取模賦值運(yùn)算符:', x)
    x = 5
    x **= y
    print('冪賦值運(yùn)算符:', x)
    x = 5
    x //= y
    print('取整賦值運(yùn)算符:', x)

每次執(zhí)行賦值運(yùn)算的時候,變量x和y的值都是5和2進(jìn)行計算并賦值給變量x,可以通過輸出結(jié)果檢測賦值計算是否正確。上述代碼在PyCharm中運(yùn)行,運(yùn)行結(jié)果如圖2-6所示。

圖2-6 賦值運(yùn)算符的輸出結(jié)果

2.3.4 邏輯運(yùn)算符

邏輯運(yùn)算符是將多個條件進(jìn)行與或非的邏輯判斷,這種類型的運(yùn)算符常用于Python的條件判斷。條件判斷會在第4章詳細(xì)講述,現(xiàn)在首先了解與或非的邏輯判斷,具體說明如表2-5所示。

表2-5 Python的邏輯運(yùn)算符

邏輯運(yùn)算符的與或非需要兩個對象進(jìn)行邏輯判斷,這兩個對象可以是任意的數(shù)據(jù)類型。讀者有興趣的話,可以自行研究多種數(shù)據(jù)類型組合的邏輯判斷結(jié)果。我們通過代碼簡單演示邏輯運(yùn)算符,代碼如下:

    x = False
    y = 'a'
    print('與運(yùn)算符:', x and y)
    print('或運(yùn)算符:', x or y)
    print('非運(yùn)算符:', not x)

變量x和y的數(shù)據(jù)類型分別為布爾型和字符串,邏輯運(yùn)算符會首先判斷對象的真假性,如變量y,如果是空的字符串,則返回False,非空的字符串就返回True,同理,元組、列表和字典與字符串的判斷邏輯是相同的;最后根據(jù)兩個對象的真假執(zhí)行與或非的邏輯判斷。將上述代碼在PyCharm里運(yùn)行,運(yùn)行結(jié)果如圖2-7所示。

圖2-7 邏輯運(yùn)算符的輸出結(jié)果

2.3.5 位運(yùn)算符

位運(yùn)算符是將數(shù)值轉(zhuǎn)換為二進(jìn)制進(jìn)行計算,我們無需將數(shù)值轉(zhuǎn)換二進(jìn)制,只需對數(shù)值使用位運(yùn)算符,Python會自動將數(shù)值轉(zhuǎn)換二進(jìn)制計算并將計算結(jié)果轉(zhuǎn)換成十進(jìn)制。位運(yùn)算符如表2-6所示。

表2-6 Python的位運(yùn)算符

我們通過代碼的形式來講述位運(yùn)算符的具體使用方式,代碼如下:

    x = 60
    y = 13
    print('&運(yùn)算符:', x & y)
    print('|運(yùn)算符:', x | y)
    print('^運(yùn)算符:', x ^ y)
    print('~運(yùn)算符:', ~x)
    print('<<運(yùn)算符:', x << 2)
    print('>>運(yùn)算符:', x >> 2 )

二進(jìn)制數(shù)據(jù)是用0和1來表示的數(shù)值。它的基數(shù)為2,進(jìn)位規(guī)則是逢二進(jìn)一,借位規(guī)則是借一當(dāng)二。由于Python是解釋性編程語言,因此位運(yùn)算符在實際開發(fā)中使用頻率相對較少,讀者可做了解。在PyCharm中運(yùn)行上述代碼,運(yùn)行結(jié)果如圖2-8所示。

圖2-8 位運(yùn)算符的輸出結(jié)果

2.3.6 成員運(yùn)算符

成員運(yùn)算符主要是判斷字符串、元組、列表或字典里是否包含某個成員,返回結(jié)果以True或False表示。Python的成員運(yùn)算符如表2-7所示。

表2-7 成員運(yùn)算符

我們以字符串和列表來演示成員運(yùn)算符的操作,具體代碼如下:

    x = 'hello world'
    y = [1, 2, 3, 4]
    print('in運(yùn)算符:', 'hello' in x)
    print('not in運(yùn)算符:', 2 not in y)

上述代碼在PyCharm中運(yùn)行,運(yùn)行結(jié)果如圖2-9所示。

圖2-9 成員運(yùn)算符的輸出結(jié)果

2.3.7 身份運(yùn)算符

身份運(yùn)算符是比較兩個對象的存儲單位是否一致,兩個對象可以為任意的數(shù)據(jù)類型、函數(shù)和類等任意形式。Python的身份運(yùn)算符如表2-8所示。

表2-8 Python的身份運(yùn)算符

如果兩個變量的值是完全相同的,則說明這兩個變量是來自同一個對象,否則是來自不同對象。我們通過代碼的形式來加以說明,代碼如下:

    x = 10
    y = 10
    print('is運(yùn)算符:', x is y)
    y = 20
    print('is not運(yùn)算符:', x is not y)

當(dāng)變量x和y的值相同的時候,則兩者是引用同一個對象,使用is運(yùn)算符輸出的結(jié)果為True;若改變變量y的值,兩個變量就各自引用不同的對象,使用is not運(yùn)算符將輸出的結(jié)果為True。運(yùn)行結(jié)果如圖2-10所示。

圖2-10 身份運(yùn)算符的輸出結(jié)果

2.3.8 運(yùn)算符的優(yōu)先級

運(yùn)算符的優(yōu)先級別是指在一個Python語句里,若包含兩種或以上的運(yùn)算符,運(yùn)算符會根據(jù)優(yōu)先級高低依次執(zhí)行運(yùn)算順序。表2-9從高到低列出了所有運(yùn)算符的優(yōu)先級。

表2-9 運(yùn)算符的優(yōu)先級

2.4 本章小結(jié)

本章主要講述變量的命名與使用、變量的深淺拷貝以及運(yùn)算符的使用。在講述這三個知識點的時候,涉及到Python的數(shù)據(jù)類型,如數(shù)字、字符串、布爾型、元組、列表和字典等。對于初學(xué)者來說,Python的數(shù)據(jù)類型有點陌生,通過本章的學(xué)習(xí),讀者有個大致的了解即可。

變量的命名需要遵循變量的命名規(guī)則;而變量的使用首先對變量直接賦值,通過賦值相當(dāng)于對變量進(jìn)行定義和聲明其數(shù)據(jù)類型。如果對已有的變量重新賦值,則表示對變量重新進(jìn)行定義和聲明。

變量的深淺拷貝分為深拷貝和淺拷貝,只適用于變量值為列表或字典的變量。讀者要掌握深拷貝和淺拷貝的區(qū)別以及兩者的拷貝方式。

Python的運(yùn)算符共有7類,分別為:


● 算術(shù)運(yùn)算符:計算兩變量的加減乘除等計算法則。

● 比較(關(guān)系)運(yùn)算符:比較兩個變量的大小情況。

● 賦值運(yùn)算符:先計算后賦值到新的變量。

● 邏輯運(yùn)算符:與或非的邏輯判斷。

● 位運(yùn)算符:把數(shù)值看成二進(jìn)制來進(jìn)行計算。

● 成員運(yùn)算符:判斷字符串、元組、列表或字典中是否含有成員。

● 身份運(yùn)算符:用于比較兩個對象的存儲單位,比如判斷變量a和b在計算機(jī)內(nèi)存地址是否一致。


不同的運(yùn)算符有不同的優(yōu)先級別,掌握運(yùn)算符的優(yōu)先級別是編寫高質(zhì)代碼的基礎(chǔ)。

主站蜘蛛池模板: 翁牛特旗| 北碚区| 南和县| 青神县| 盐山县| 康平县| 全椒县| 永新县| 方城县| 宝兴县| 嘉义市| 永登县| 普兰县| 手游| 家居| 靖远县| 香格里拉县| 无锡市| 富裕县| 临夏县| 利川市| 包头市| 丹棱县| 绍兴市| 琼结县| 文水县| 禹城市| 临西县| 鲁山县| 安塞县| 吉林市| 文化| 龙江县| 内黄县| 南京市| 德昌县| 永清县| 叶城县| 潼南县| 常宁市| 沿河|