- Python自動化開發實戰
- 黃永祥
- 487字
- 2019-12-09 14:29:39
2.3 運算符的使用
編程里面的運算符就好比我們數學里面的加減乘除等運算法則,每一種編程語言的運算符是大同小異的。Python支持以下類型的運算符。
● 算術運算符:計算兩個變量的加減乘除等計算法則。
● 比較(關系)運算符:比較兩個變量的大小情況。
● 賦值運算符:先計算后賦值到新的變量。
● 邏輯運算符:與或非的邏輯判斷。
● 位運算符:把數值看成二進制來進行計算。
● 成員運算符:判斷字符串、元組、列表或字典中是否含有成員。
● 身份運算符:用于比較兩個對象的存儲單位,比如判斷變量a和b在計算機的內存地址是否一致。
2.3.1 算術運算符
算術運算符也就是我們常說的加減乘除法則,主要在程序里實現簡單的運算。Python的算術運算符如表2-2所示。
表2-2 Python的算術運算符

根據上述算術運算符,下面通過實例演示Python算術運算符的具體操作,代碼如下:
x = 8 y = 5 print('加法運算符:', x+y) print('減法運算符:', x-y) print('乘法運算符:', x*y) print('除法運算符:', x/y) print('取模運算符:', x%y) print('冪運算符:', x**y) print('取整運算符:', x//y)
在PyCharm上運行上述代碼,運行結果如圖2-4所示。

圖2-4 算術運算符的輸出結果
2.3.2 比較運算符
比較(關系)運算符是比較兩個變量之間的大小關系,而且兩個變量的數據類型必須相同,比較結果以True或者False返回。Python的比較(關系)運算符如表2-3所示。
表2-3 Python的比較(關系)運算符

我們將通過代碼來進一步講述比較(關系)運算符的具體操作,代碼如下:
x = 2 y = 3 print('等于運算符:', x==y) print('不等于運算符:', x!=y) print('大于運算符:', x>y) print('小于運算符:', x<y) print('大于等于運算符:', x>=y) print('小于等于運算符:', x<=y)
上述代碼設置變量x和y,然后通過比較(關系)運算符將兩變量進行對比并將對比結果輸出。在PyCharm中運行代碼,運行結果如圖2-5所示。

圖2-5 比較運算符的輸出結果
2.3.3 賦值運算符
賦值運算符是算術運算符的一個特殊使用,其實質是兩個變量進行算術運算并將運算結果重新賦值到其中一個變量里。Python的賦值運算符如表2-4所示。
表2-4 Python的賦值運算符

根據上述的賦值運算符,我們通過代碼的形式加以實現。由于每次賦值運行后,變量x的數值會發生變化,因此執行下次賦值運算時必須重設變量x的數值。具體代碼如下:
x = 5 y = 2 print('簡單的賦值運算符:', x+y) x += y print('加法賦值運算符:', x) x = 5 x -= y print('減法賦值運算符:', x) x = 5 x *= y print('乘法賦值運算符:', x) x = 5 x /= y print('除法賦值運算符:', x) x = 5 x %= y print('取模賦值運算符:', x) x = 5 x **= y print('冪賦值運算符:', x) x = 5 x //= y print('取整賦值運算符:', x)
每次執行賦值運算的時候,變量x和y的值都是5和2進行計算并賦值給變量x,可以通過輸出結果檢測賦值計算是否正確。上述代碼在PyCharm中運行,運行結果如圖2-6所示。

圖2-6 賦值運算符的輸出結果
2.3.4 邏輯運算符
邏輯運算符是將多個條件進行與或非的邏輯判斷,這種類型的運算符常用于Python的條件判斷。條件判斷會在第4章詳細講述,現在首先了解與或非的邏輯判斷,具體說明如表2-5所示。
表2-5 Python的邏輯運算符

邏輯運算符的與或非需要兩個對象進行邏輯判斷,這兩個對象可以是任意的數據類型。讀者有興趣的話,可以自行研究多種數據類型組合的邏輯判斷結果。我們通過代碼簡單演示邏輯運算符,代碼如下:
x = False y = 'a' print('與運算符:', x and y) print('或運算符:', x or y) print('非運算符:', not x)
變量x和y的數據類型分別為布爾型和字符串,邏輯運算符會首先判斷對象的真假性,如變量y,如果是空的字符串,則返回False,非空的字符串就返回True,同理,元組、列表和字典與字符串的判斷邏輯是相同的;最后根據兩個對象的真假執行與或非的邏輯判斷。將上述代碼在PyCharm里運行,運行結果如圖2-7所示。

圖2-7 邏輯運算符的輸出結果
2.3.5 位運算符
位運算符是將數值轉換為二進制進行計算,我們無需將數值轉換二進制,只需對數值使用位運算符,Python會自動將數值轉換二進制計算并將計算結果轉換成十進制。位運算符如表2-6所示。
表2-6 Python的位運算符

我們通過代碼的形式來講述位運算符的具體使用方式,代碼如下:
x = 60 y = 13 print('&運算符:', x & y) print('|運算符:', x | y) print('^運算符:', x ^ y) print('~運算符:', ~x) print('<<運算符:', x << 2) print('>>運算符:', x >> 2 )
二進制數據是用0和1來表示的數值。它的基數為2,進位規則是逢二進一,借位規則是借一當二。由于Python是解釋性編程語言,因此位運算符在實際開發中使用頻率相對較少,讀者可做了解。在PyCharm中運行上述代碼,運行結果如圖2-8所示。

圖2-8 位運算符的輸出結果
2.3.6 成員運算符
成員運算符主要是判斷字符串、元組、列表或字典里是否包含某個成員,返回結果以True或False表示。Python的成員運算符如表2-7所示。
表2-7 成員運算符

我們以字符串和列表來演示成員運算符的操作,具體代碼如下:
x = 'hello world' y = [1, 2, 3, 4] print('in運算符:', 'hello' in x) print('not in運算符:', 2 not in y)
上述代碼在PyCharm中運行,運行結果如圖2-9所示。

圖2-9 成員運算符的輸出結果
2.3.7 身份運算符
身份運算符是比較兩個對象的存儲單位是否一致,兩個對象可以為任意的數據類型、函數和類等任意形式。Python的身份運算符如表2-8所示。
表2-8 Python的身份運算符

如果兩個變量的值是完全相同的,則說明這兩個變量是來自同一個對象,否則是來自不同對象。我們通過代碼的形式來加以說明,代碼如下:
x = 10 y = 10 print('is運算符:', x is y) y = 20 print('is not運算符:', x is not y)
當變量x和y的值相同的時候,則兩者是引用同一個對象,使用is運算符輸出的結果為True;若改變變量y的值,兩個變量就各自引用不同的對象,使用is not運算符將輸出的結果為True。運行結果如圖2-10所示。

圖2-10 身份運算符的輸出結果
2.3.8 運算符的優先級
運算符的優先級別是指在一個Python語句里,若包含兩種或以上的運算符,運算符會根據優先級高低依次執行運算順序。表2-9從高到低列出了所有運算符的優先級。
表2-9 運算符的優先級

2.4 本章小結
本章主要講述變量的命名與使用、變量的深淺拷貝以及運算符的使用。在講述這三個知識點的時候,涉及到Python的數據類型,如數字、字符串、布爾型、元組、列表和字典等。對于初學者來說,Python的數據類型有點陌生,通過本章的學習,讀者有個大致的了解即可。
變量的命名需要遵循變量的命名規則;而變量的使用首先對變量直接賦值,通過賦值相當于對變量進行定義和聲明其數據類型。如果對已有的變量重新賦值,則表示對變量重新進行定義和聲明。
變量的深淺拷貝分為深拷貝和淺拷貝,只適用于變量值為列表或字典的變量。讀者要掌握深拷貝和淺拷貝的區別以及兩者的拷貝方式。
Python的運算符共有7類,分別為:
● 算術運算符:計算兩變量的加減乘除等計算法則。
● 比較(關系)運算符:比較兩個變量的大小情況。
● 賦值運算符:先計算后賦值到新的變量。
● 邏輯運算符:與或非的邏輯判斷。
● 位運算符:把數值看成二進制來進行計算。
● 成員運算符:判斷字符串、元組、列表或字典中是否含有成員。
● 身份運算符:用于比較兩個對象的存儲單位,比如判斷變量a和b在計算機內存地址是否一致。
不同的運算符有不同的優先級別,掌握運算符的優先級別是編寫高質代碼的基礎。
- Boost程序庫完全開發指南:深入C++”準”標準庫(第5版)
- Java程序設計(慕課版)
- Mastering Zabbix(Second Edition)
- INSTANT Sencha Touch
- 云原生Spring實戰
- Visual Basic學習手冊
- Julia for Data Science
- ExtJS Web應用程序開發指南第2版
- Java Web從入門到精通(第2版)
- Python Programming for Arduino
- Apache Solr PHP Integration
- 進入IT企業必讀的324個Java面試題
- Learning C++ by Creating Games with UE4
- Java程序設計教程
- Python Linux系統管理與自動化運維