程序語言的特性總是為解決生活中遇到的實際問題而設計的。脫離生活實質的無根源的設計是為意義的。正如運算符,正是因為我們在生活中,總是遇到各種各校的運算問題。
python算術運算符
加減乘除是最基本的數學規則,python中當然不能忽視。我們通過交互式解釋器來演示。在cmd命令行下,輸入python回車,即可打開交互式窗口。
加減乘除如下:
進行除法運算時,如果不使用分數,則會出現有餘數的情況,數學裡,通常表示如下:
python裡,提供 % 符號用於取餘數,提供 // 符號用於取整數商。如下:
python裡,用兩個星號,即 ** 代表冪運算,如下:
python比較運算符
比較大小,判斷是否相等,也是常見的數學運算。這類運算的結果為是或否,python中,用兩個特殊的變量,True和False來表示是或否。如下:
需要注意的是,等於是用兩個等於號來表示的,新手常範的錯誤之一就是少寫了一個等於號。
本文章基於版本python3,老版本中,不等於可以用 <> 來表示,python3已經移除了該運算符。
python賦值運算符
python和大部分語言一樣,用一個等於號來表示賦值。如令a的值為1,如下:
賦值運算符可以和算術運算符相結合,形成一個複合運算符,該運算符的含義是先將變量和運算符右項進行指定的算術運算,再將運算結果賦值給變量。如下:
冪運算也可以和賦值運行符結合,如下:
python位運算符
計算機中,所有的內容最終都會以二進位的形式被計算機識別,對於二進位來說,位運算就是一個常規的內容。運算規則有與、或、非、異或、左移、右移等。如下:
對於位運算不是很了解的同學,請自行學習機器碼,二進位等相關內容。後面的文章也會專門提到。
python邏輯運算符
python中也有用於描述邏輯運算的內容。不同於其它語言的是,在其它語言中,可能使用 & 或 && 來表示與,用 | 或 || 來表示或,用 !來表示非。但在python中,直接用英文單詞 and 、or、not來表示。如下:
有同學可以會問,為什麼python不像其它語言一樣,採用符號化的方式來表示邏輯運算,而是通過單詞來表示?
其實沒有為什麼,或者說,這個問題的答案或許只有python之父Guido知道了。任何一個事物都沒有絕對的好和壞,只有適合或更適合吧。
python成員運算符
經常我們會遇到這樣的問題:判斷某個元素是否在某個集合中。python通過 in 或not in 來完成這個工作。
in 代表 判斷某元素是否在某個序列或元組中,在返回True,不在返回False。
not in 和 in 判斷邏輯剛好相反。如下:
python身份運算符
通常我們還會遇到這樣的問題:判斷兩個標識是否指向同一個對象。python中用 is 或 is not。
這種比較,比較的是兩個標識是否指向了內存中的同一個存儲單元。它和 == 是不同的。==判斷的是它們的值是否相同。而用is時,即使值相同,也可能因為不是同一個存儲單元而返回False。
有java基礎的同學會發現,這和java中是不一樣的。java中,==判斷的就是兩個對象的內存地址,而如果僅僅通過值判斷,需要使用equals方法。
python運算符優先級
如我們在學四則運算時,加減乘除有優先級一樣,python中運算符也有優先級。如下:
從代碼規範的角度來說,我們更希望你可以通過小括號的使用,明顯的表示出一個複雜表達式的優先級,以提高代碼的可讀性。如下:
顯然,第二種寫法是更推薦的。