今天給大家科普一下 Python 的運算符。
運算符的優先級,按下表的從高到低排序
運算符 | 說明 |
**、 ^、 ! | 指數、按位翻轉、非 |
*、 /、 %、 // |
乘、除、取模、整除 |
+、 - | 加、減 |
>>、<< | 左移、右移 |
==、 >=、 <=、 >、 <、 != | 是否相等、大於等於、小於等於、大於、小於、不等於 |
=、 +=、 -=、 *=、 /=、 %=、 **=、 //=、 := | 賦值(其中a+=b ,相當於a=a+b ,其他的同理) |
is、 is not | 判斷id 是否相同 |
in、 not in | 判斷成員是否存在 |
and、 or、 not | 與、或、非 |
下面挑幾個重點講解:
1、+
2、//
3、<<
4、+=
5、=
6、:=
一、“+” 號
(1)“+” 號用在數值類型的時候,表示算數加法;
其中,數值可以是整數,也可以是浮點數。
(2)用在字符串或列表時,則代表拼接字符串或拼接列表。
值得注意的是,“+”號兩邊必須是相同的數據類型,否則會報錯。
(3)這裏再提一嘴 "-" 號
"-"號只能用於數值類型,不能用於字符串或者列表
二、"//" 號(整除號)
例子:
三、"<<" 號
左移(<<)和右移(>>),用於對二進制數進行位數操作,返回值是十進制數。
(1)1<<5 表示,1 向左移動 5 位。
詳解:
操作前:0000 0001 -> 十進制表示:1
操作後:0010 0000 -> 十進制表示:32
(2)3*1<<5 表示,1 向左移動 5 位的十進制數,再乘3。
(3)4>>1 表示,4(二進制數表示 100)向右移動1位。
操作前:0000 0100 -> 十進制表示:4
操作後:0000 0010 -> 十進制表示:2
四、"+=" 號
a += b 等價於 a = a + b
=、 +=、 -=、 *=、 /=、 %=、 **=、 //= 同理。
舉個例子:
注意,"+="是賦值符號,a 必須是變量,否則會出現語法錯誤。
五、"=" 號
“=”號非常簡單,不就是賦值嘛,誰都會。
但是,假如你是個新手的話,你明白下面這三行代碼的含義不?
a = 1
b = 2
a, b = b, a
意思就是互相交換a、b兩個變量的值。即:a = b,b = a。
假如 python 沒有這個特性的話,需要賦值給中間變量tmp,才能完成變量交換。應該是像下面這樣書寫
a = 1
b = 2
tmp = a
a = b
b = tmp
python 的 "=" 號交換變量,是不是方便很多?
六、 ":=" 號
":=" 是 python3.8 的新特性,該符號又稱爲"海象運算符"。
官方例子:https://docs.python.org/3/whatsnew/3.8.html
好處就是,:=可將值分配給變量,又作爲表達式的一部分,使賦值和判斷,兩步合成一步,讓代碼變得更簡潔。
常常用於判斷語句中,也非常適合運用在"while/do while"循環語句當中。
比方說,len(a) 表示輸出列表a的長度(元素個數)。
你想要判斷 len(a) > 5 的情況下,輸出 len(a) 的值。
你用":="時,是如下所寫的。
a = [1,2,3,4,5,6,7,8,9,10]
if (n:=len(a)) > 5:
print(n) # 結果應該是10
假如不用":=",則會這麼寫:
a = [1,2,3,4,5,6,7,8,9,10]
n = len(a)
if n > 5:
print(n)
或者
a = [1,2,3,4,5,6,7,8,9,10]
if len(a) > 5:
print(len(a))
看看,要麼引入變量 n 來獲取 len(a) 的值,要麼就是 len(a) 運算兩次。
最後,注意 ":=" 只能在 python版本 >= 3.8 時使用。
關於作者
github:https://github.com/GitDzreal93/dev-tester
微信公衆號:測試開發guide