給自學者的Python教學(5):算術運算子

YC
4 min readOct 25, 2017

--

在Python中,我們可以使用不同的算術運算子來為我們服務。其實在之前的文章,我們就已經使用了一些算術運算子了,現在我們來詳細看一下不同運算子的作用。

以下是Python的算術運算子:

我相信加、減、乘,都相當的直觀,在些先不多作解釋了,若是對此有問題,可以在下方留言,我會再詳細解釋。

除法在Python就是比較有趣了,因為它有兩種除法:
1. 使用/運算得出的結果可以是浮點數。
2. 使用//運算得出的結果卻是整數。

這兩個運算子之間的差別是什麼呢?

在Python中,我們可以直接使用整數與浮點數來進行運算。對,我們不需要進行配外的數據型態轉換就可以運算了,如下:

>>> 2 * 3.3
6.6
>>> 5 / 2.3
2.173913043478261

那使用整數除法呢?

>>> 3 //2
1
>>> 15 // 2
7

在整數除法運算時,餘數會被Python自動處理掉,只輸出小數點前的整數。(這樣子的運算有什麼用呢?🤔)

問題:如果某數以0整除,會得到什麼結果?

不管是那一種除法運算都會產生錯誤:
>>> 5 / 0
Traceback (most recent call last):
File “<pyshell#9>”, line 1, in <module>
5/0
ZeroDivisionError: division by zero

>>> 5 // 0
Traceback (most recent call last):
File “<pyshell#10>”, line 1, in <module>
5 // 0
ZeroDivisionError: integer division or modulo by zero

另一個奇怪的除法相關運算子,就是%(求餘數)。
我們可以用%來得到整除後的餘數,如下:

>>> 5 % 3
2
>>> 5 % 5
0
>>> 5 % 0
Traceback (most recent call last):
File “<pyshell#13>”, line 1, in <module>
5 % 0
ZeroDivisionError: integer division or modulo by zero

以上,我們可以看到5除以3得到的餘數2就會是輸出結果。
如果可以被整除,則輸出餘數結果為0。
如果求5除以0的餘數,則一樣會得出錯誤。

現在,讓我們來學一樣很酷的東西--運算與賦值的整合。

先舉個例子,現在我們宣告a = 8,然後我們來運算a = a - 1,如下:
>>> a = 8
>>> a = a - 1
>>> a
7

在第2行,大家可能會有疑問,為何可以a = a - 1?這不符合直覺吧!
大家可以回想一下在變數篇中,有提到過在需要賦值給一個變數時,Python是會先計算=加邊的程式碼,再把這個運算結果儲存到一個臨時變量中,最後再把這個臨時變量的值賦值給 a 。

但是,我們其實可以有一個更快的方法來合並運算與賦值,稱為指定運算子。我們只需要將運算子放到=的前面,如 a -= 1:

>>> a = 8
>>> a -= 1
>>> a
7

一樣可以得到相同的結果。我們因此可以歸納出只要需要運算的變數與被賦值的變數是相同的,我們就可以使用指定運算子。以下為其他例子:

>>> a += 1
>>> a
8
>>> a -= 1
>>> a
7
>>> a *= 3
>>> a
21
>>> a /= 3
>>> a
7.0

值得注意的是,使用算術運算子進行運算時,就跟我們學數學一樣,都是「先乘除,後加減」。

如果你覺得我的文章幫助到你,希望你也可以化讚為賞,加入 Liker ,再按下方的綠色拍手按鈕,為文章點讚!為作者增加收益,再回饋更多好文章!

--

--

YC

提供更精確的技術內容為目標,另創立「程式愛好者」專頁。首席軟體工程師,專研後端技術、物件導向、軟體架構。