2-Python3從入門到實戰—基礎之運算符
Python從入門到實戰系列——目錄
Python語言支持以下類型的運算符:
- 算術運算符
- 比較(關系)運算符
- 賦值運算符
- 邏輯運算符
- 位運算符
- 成員運算符
- 身份運算符
- 運算符優先級
算術運算符
Python中算術運算符包含:+,-,*,/,%,**,//
a = 10 b = 5 a + b 返回結果 15 a - 5 返回結果 5 a * b 返回結果 50 a / b 返回結果 2.0 # / 總是返回浮點數 a % b 返回結果 0 # % 表示a除以b取余數 a ** b 返回結果 100000 # ** 表示 a 的 b 次方 a // b 返回結果 2 # // 表示 a 除以 b 的商的整數部分 10.0 // 5.0 返回結果 2
比較運算符
Python中比較運算符包含:>,<,>=,<=,==,!=
a = 10 b = 5 ( a > b ) 返回結果 True ( a < b ) 返回結果 False ( a >= b ) 返回結果 True ( a <= b ) 返回結果 False ( a == b ) 返回結果 False ( a != b ) 返回結果 True
賦值運算符
Python中賦值運算符包含:=,+=,-=,*=,/=,%=,**=,//=
a = 10 b = 20 c = a + b # 將 a + b 的值賦值給c c += a # 相當於 c = c + a c -= a # 相當於 c = c - a c *= a # 相當於 c = c * a c /= a # 相當於 c = c / a c %= a # 相當於 c = c % a c **= a # 相當於 c = c ** a c //= a # 相當於 c = c // a
邏輯運算符
- Python中邏輯運算符包含:and,or,not
and: 布爾"與"; x and y 表示如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值;
a = 10 b = 20 print( a and b ) # 輸出:20
or: 布爾"或"; x or y 表示 如果 x 是 True,它返回 x 的值,否則它返回 y 的計算值;
a = 10 b = 20 print( a or b ) # 輸出:10
not: 布爾"非"; not x 表示如果 x 為 True,返回 False 。如果 x 為 False,它返回 True;
a = 10 b = 20 print(not(a==10)) # 輸出:False print(not(b==10)) # 輸出:True
位運算符
- Python中位運算符包含:&,|,^,~,<<,>>;按位運算符是把數字看作二進制來進行計算的;
& (按位與運算符):參與運算的兩個值,如果兩個相應位都為1,則該位的結果為1,否則為0;
a = 0b0011 1100 b = 0b0000 1101 a & b = 0000 1100
| (按位或運算符):只要對應的二個二進位有一個為1時,結果位就為1;
a = 0b0011 1100 b = 0b0000 1101 a | b = 0011 1101
^ (按位異或運算符):當兩對應的二進位相異時,結果為1;
a = 0b0011 1100 b = 0b0000 1101 a ^ b = 0011 0001
~ (按位取反運算符):對數據的每個二進制位取反,即把1變為0,把0變為1。~x 類似於 -x-1;
a = 0b0011 1100 ~a = 1100 0011
<< (左移動運算符):運算數的各二進位全部左移若幹位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0;
a = 0b0011 1100 a << 2 # a 左移兩位,即結果:1111 0000
“>>” (右移動運算符):把">>"左邊的運算數的各二進位全部右移若幹位,">>"右邊的數指定移動的位數;
a = 0b0011 1100 a >> 2 # a 右移兩位,即結果:0000 1111
成員運算符
- Python中成員運算符包含:in,not in;
in:如果在指定的序列中找到值返回 True,否則返回 False;
a = 10 list = [1, 2, 3, 4, 5 ]; if ( a in list ): print ("變量 a 在列表中 list 中") else: print("變量 a 不在列表 list 中")
not in:如果在指定的序列中沒有找到值返回 True,否則返回 False;
a = 10 list = [1, 2, 3, 4, 5 ]; if ( a not in list ): print ("變量 a 不在列表中 list 中") else: print("變量 a 在列表 list 中")
身份運算符
- Python中身份運算符包含:is,is not;身份運算符用於比較兩個對象的存儲單元
is 判斷兩個標識符是不是引用自一個對象,x is y, 類似 id(x) == id(y);
a = 20 b = 20 if ( a is b ): print (" a 和 b 有相同的標識") else: print (" a 和 b 沒有相同的標識") if ( id(a) == id(b) ): print (" a 和 b 有相同的標識") else: print (" a 和 b 沒有相同的標識") # 輸出結果均為: a 和 b 有相同的標識 # 修改 b 的值 b = 30 if ( a is b ): print (" a 和 b 有相同的標識") else: print (" a 和 b 沒有相同的標識") # 輸出結果: a 和 b 沒有相同的標識
is not 判斷兩個標識符是不是引用自不同對象,x is not y , 類似 id(a) != id(b)
a = 20 b = 30 if ( a is not b ): print (" a 和 b 沒有相同的標識") else: print (" a 和 b 有相同的標識") if ( id(a) != id(b) ): print (" a 和 b 沒有相同的標識") else: print (" a 和 b 有相同的標識") # 輸出結果均為: a 和 b 沒有相同的標識 # 修改 b 的值 b = 20 if ( a is not b ): print (" a 和 b 沒有相同的標識") else: print (" a 和 b 有相同的標識") # 輸出結果: a 和 b 有相同的標識
運算符優先級
- 運算符優先級從高到底如下:
** 指數 (最高優先級)
~ + - 按位翻轉, 一元加號和減號 (最後兩個的方法名為 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法減法
>> << 右移,左移運算符
& 位 ‘AND‘
^ | 位運算符
<= < > >= 比較運算符
<> == != 等於運算符
= %= /= //= -= += *= **= 賦值運算符
is is not 身份運算符
in not in 成員運算符
not or and 邏輯運算符
2-Python3從入門到實戰—基礎之運算符