- Python自動化開發(fā)實戰(zhàn)
- 黃永祥
- 1250字
- 2019-12-09 14:29:39
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ǔ)。
- Extending Jenkins
- R語言數(shù)據(jù)可視化之美:專業(yè)圖表繪制指南
- Learning C++ Functional Programming
- Animate CC二維動畫設(shè)計與制作(微課版)
- SAP BusinessObjects Dashboards 4.1 Cookbook
- Python面向?qū)ο缶幊蹋簶?gòu)建游戲和GUI
- 深入RabbitMQ
- Extending Puppet(Second Edition)
- 打開Go語言之門:入門、實戰(zhàn)與進(jìn)階
- 智能手機(jī)故障檢測與維修從入門到精通
- Python網(wǎng)絡(luò)爬蟲實例教程(視頻講解版)
- Robot Framework Test Automation
- Drupal 8 Development:Beginner's Guide(Second Edition)
- 數(shù)字媒體技術(shù)概論
- Java程序設(shè)計實用教程(第2版)