讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 3.4 另外兩個操作符 >

3.4 另外兩個操作符

還有兩個算術操作符要告訴你。程序中需要的 99% 的操作符就是這兩個操作符再加上前面剛講的 4 個基本操作符。

指數——自乘為一個冪

如果把 3 乘 5 次,可以寫成

>>> print 3 * 3 * 3 * 3 * 3243  

不過,這就等同於 35,或者「3 的指數為 5」,也就是「3 的 5 次冪」。Python 用一個雙星號表示指數或者將一個數自乘為一個冪。

>>> print 3 ** 5243  

切記!

很多語言和程序可能使用其他符號來表示自乘為一個冪。一種常用的符號是 ^(例如 3^5)。如果在 Python 中使用這個符號,你不會得到一個錯誤消息,只不過答案不正確。(這是因為,^ 在 Python 中另有含義————我們可不希望這樣!)這個問題可能很難調試。一定要使用 ** 操作符表示自乘為一個冪 [ 也稱為求冪(exponentiation)]。

之所以使用指數而不是直接做多次乘法,這是因為鍵入時會更容易一些。不過更重要的原因是,利用 ** 還可以用非整數作為指數,如下:

>>> print 3 ** 5.5420.888346239  

要想利用乘法來做到這一點可不容易。

取余——求餘數

在 Python 中第一次嘗試除法時,我們已經看到,如果將兩個整數相除,Python 2 會給你一個整數答案。(Python 3 使用 // 操作符。)也就是說,它在完成整數除法。不過,在整數除法中,答案實際上有兩部分。

還記得剛開始學除法嗎?如果兩個數不能整除,最後會得到一個餘數(remainder):

7 / 2 = 3,餘數是 1  

7 / 2 的答案中有一個商(quotient),在這裡就是 3,還有一個餘數(remainder),這裡的餘數是 1。如果在 Python 中將兩個整數相除,它會給你商。不過餘數呢?

Python 有一個特殊的操作符來計算整數相除的餘數。這稱為取余(modulus)操作符,這個符號是百分號(%)。可以像這樣使用:

>>> print 7 % 21  

所以如果同時使用 / 和 %,就可以得到整數相除的完整答案:

>>> print 7 / 23>>> print 7 % 21  

可以看到,7 除以 2 得 3,餘數是 1。如果做浮點數除法,會得到小數答案:

>>> print 7.0 / 23.5  

 

實際上,既然你提到了這一點,應該說操作符和操作員確實很接近……就像老式電話接線員連接電話一樣,算術操作符按同樣的方式把數字連接在一起。

我想告訴你的還有另外兩個操作符。我知道,我剛才已經說過只再講兩個,不過別擔心,這兩個操作符非常容易!

自增和自減

還記得上一章中的例子:score = score + 1 嗎?我們說過,這稱為自增(incrementing)。與它類似的是 score = score - 1,這稱為自減(decrementing)。這些運算在編程中經常出現,因此有自己專門的操作符:+=(自增)和 -=(自減)。

可以像這樣使用:

或者:

其中第一個例子將 number 增 1(這會從 7 變成 8)。第二個例子將 number 減去 1(從 7 變成 6)。