點擊上方「編程派」,選擇設為「設為星標」
優質文章,第一時間送達!
這次我們來學習Python中的運算符的剩餘部分,上一篇文章請訪問一分鐘學Python| Python的運算符 (上)
位運算符是把數字看作二進位來進行計算的。Python中的按位運算法則如下:
設變量 a 為 60,b 為 13
化為二進位
a = 0011 1100
b = 0000 1101
運算符功能實例&按位與運算符:參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0(a & b) 輸出結果 12 ,二進位解釋:0000 1100|按位或運算符:只要對應的二個二進位有一個為1時,結果位就為1(a|b) 輸出結果 61 ,二進位解釋:0011 1101^按位異或運算符:當兩對應的二進位相異時,結果為1(a ^ b) 輸出結果 49 ,二進位解釋:0011 0001~按位取反運算符:對數據的每個二進位位取反,即把1變為0,把0變為1。~x 類似於 -x-1(~a ) 輸出結果 -61 ,二進位解釋:1100 0011, 在一個有符號二進位數的補碼形式。<<左移動運算符:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。a << 2 輸出結果 240 ,二進位解釋:1111 0000>>右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數a >> 2 輸出結果 15 ,二進位解釋:0000 1111代碼實例
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print ("1 - c 的值為:", c)
c = a | b; # 61 = 0011 1101
print ("2 - c 的值為:", c)
c = a ^ b; # 49 = 0011 0001
print ("3 - c 的值為:", c)
c = ~a; # -61 = 1100 0011
print ("4 - c 的值為:", c)
c = a << 2; # 240 = 1111 0000
print ("5 - c 的值為:", c)
c = a >> 2; # 15 = 0000 1111
print ("6 - c 的值為:", c)結果如圖
Python邏輯運算符設變量 a 為 1, b為 2:
運算符邏輯表達式功能實例andx and y布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。(a and b) 返回 2orx or y布爾"或" - 如果 x 是 True,它返回 x 的值,否則它返回 y 的計算值。(a or b) 返回 1notnot x布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。not(a and b) 返回 False代碼示例
a = 1
b = 2
if ( a and b ):
print ("1 - 變量 a 和 b 都為 true")
else:
print ("1 - 變量 a 和 b 有一個不為 true")
if ( a or b ):
print ("2 - 變量 a 和 b 都為 true,或其中一個變量為 true")
else:
print ("2 - 變量 a 和 b 都不為 true")
# 修改變量 a 的值
a = 0
if ( a and b ):
print ("3 - 變量 a 和 b 都為 true")
else:
print ("3 - 變量 a 和 b 有一個不為 true")
if ( a or b ):
print ("4 - 變量 a 和 b 都為 true,或其中一個變量為 true")
else:
print ("4 - 變量 a 和 b 都不為 true")
if not( a and b ):
print ("5 - 變量 a 和 b 都為 false,或其中一個變量為 false")
else:
print ("5 - 變量 a 和 b 都為 true")結果如下圖
Python運算符優先級以下表格列出了從最高到最低優先級的運算符:
運算符描述**指數 (最高優先級)~ + -按位翻轉, 一元加號和減號 (最後兩個的方法名為 +@ 和 -@)* / % //乘,除,求餘數和取整除+ -加法減法>> <<右移,左移運算符&位 'AND'^位運算符<= < > >=比較運算符== !=等於運算符= %= /= //= -= += *= **=賦值運算符not and or邏輯運算符代碼示例
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d #( 30 * 15 ) / 5
print ("(a + b) * c / d 運算結果為:", e)
e = ((a + b) * c) / d # (30 * 15 ) / 5
print ("((a + b) * c) / d 運算結果為:", e)
e = (a + b) * (c / d); # (30) * (15/5)
print ("(a + b) * (c / d) 運算結果為:", e)
e = a + (b * c) / d; # 20 + (150/5)
print ("a + (b * c) / d 運算結果為:", e)結果如下
回復下方「關鍵詞」,獲取優質資源
回復關鍵詞「 pybook03」,立即獲取主頁君與小夥伴一起翻譯的《Think Python 2e》電子版
回復關鍵詞「入門資料」,立即獲取主頁君整理的 10 本 Python 入門書的電子版
回復關鍵詞「m」,立即獲取Python精選優質文章合集
回復關鍵詞「book 數字」,將數字替換成 0 及以上數字,有驚喜好禮哦~
推薦閱讀
題圖:pexels,CC0 授權。