本篇主要介紹:占位運算符、算術運算符、賦值運算符、比較運算符、邏輯運算符、位運算符、身份運算符、成員運算符、序列運算符和運算符優先級
一、占位運算符
運算符類似於C語言中sprintf或printf函數中使用的占位符,在字符串中可以給出一些占位符用來表示不同類型的數據,而實際的數據值在字符串之外給出。
%d:有符號整型十進制數
%f或%F:有符號浮點型十進制數
%s:字符串
由於%作為占位符的前綴字符,因此對於有占位符的字符串,表示一個%時需要寫成“%%“。
二、算術運算符
算術運算是計算機支持的主要運算之一,其運算對象是數值型數據。


小提示:十進制小數在轉換為二進制時有可能會產生精度損失,結果與實際計算結果之間存在偏差,問題不大
三、賦值運算符
賦值運算要求左操作數對象必須是值可以修改的變量。


四、比較運算符
比較運算的作用是對兩個操作數對象的大小關系進行判斷。


比較運算返回的結果是布爾值True或False。在執行程序時,程序中的每條語句並不一定是按順序依次執行。比較運算的主要作用是設置條件,某些語句在滿足條件時才會執行一次 ( 即條件語句),而某些語句在滿足條件時會重復執行多次(即循環語句)。
五、邏輯運算符
邏輯運算可以將多個比較運算連接起來形成更復雜的條件判斷。


六、位運算符
(1)十進制轉二進制:除基取余法
用2去除十進制整數,得到商和余數;如果商不為0,則繼續用2除,再得到商和余數,重復該步驟直至商為0;
最后將余數按照從后至前的順序排列,即得到轉換后的二進制數。


(2)二進制轉十進制:按權展開求和
即將二進制數的每一位攜程數碼乘以位權的形式,再對乘積求和。


(3)位運算是指對二進制數進行逐位運算。




print(i1^i2) #輸出“5”。計算方法:011B^110B=101B=5
print(i1<<1) #輸出“6”。計算方法:11B<<1=110B=6
print(i1>>1) #輸出“1”。計算方法:11B>>1=1B=1
七、身份運算符
身份運算用於比較兩個對象是否對應同樣的存儲單元。


程序在運行時,輸入數據和輸出數據都是存放在內存中。內存中的一個存儲單元可以存儲一個字節的數據,每個存儲單元都有一個唯一的編號,稱為內存地址。根據數據類型不同,其所占用的內存大小也不同。一個數據通常會占據內存中連續多個存儲單元,起始存儲單元的地址稱為該數據的內存首地址。利用id函數可以查看一個數據的內存首地址。
x is y等價於id(x)==id(y),即判斷x和y的內存首地址是否相同;x is not y等價於id(x)!=id(y),即
判斷x和y的內存首地址是否不相同。
八、成員運算符
成員運算用於判斷一個可迭代對象(序列、集合或字典)中是否包含某個元素。


提示:使用成員運算符判斷一個數據是否是字典中的元素,實際上就是判斷該數據是否是字典中某個元素的鍵。
九、序列運算符
用於序列操作的運算符


例如:1 x,y=[12,False],['abc',15,True]
2 z=x+y #x和y拼接后的結果賦給z
3 print(z) #輸出“[12, False, 'abc', 15, True]”
4 s1,s2='我喜歡學習','Python'
5 s=s1+s2 #s1和s2拼接后的結果賦給s
6 print(s) #輸出“我喜歡學習Python”
7 x_3=x*3 #將序列x的元素重復3次,生成一個新序列並賦給x_3
8 print(x_3) #輸出“[12, False, 12, False, 12, False] ”
9 s_3=s*3 #將字符串s重復3次,生成一個新字符串並賦給s_3
10 print(s_3) #輸出“我喜歡學習Python我喜歡學習Python我喜歡學習Python”
十、運算符優先級
在一個表達式中,通常會包含多個運算,這就涉及到了運算的順序,其由兩個因素確定:運算符的優先級和運算符的結合性。 對於具有不同優先級的運算符,會先完成高優先級的運算,再完成低優先級的運算。對於具有相同優先級的運算符,其運算順序由結合性來決定。結合性包括左結合和右結合兩種,左結合是按照從左向右的順序完成計算,而右結合是按照從右向左的順序完成計算。

