你知道":="和"//"在python裏面代表什麼嗎?這篇《python運算符》介紹,你肯定不想錯過

今天給大家科普一下 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章