在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
值得注意的是,使用算術運算子進行運算時,就跟我們學數學一樣,都是「先乘除,後加減」。