數字運算


程式這種東西,與數字是脫離不了關係的。這不代表數學不好的人寫不了的程式,而是代表你需要會加減乘除等基本運算才能寫程式。對我們來說,這樣的數字運算根本就是小菜一疊,那麼要怎麼在 Python 中達成運算呢?


加減乘除


對於加減乘除這四個基本的運算,其實相當的簡單明瞭,看看下面的例子,相信不需要任何人的解說,初學者就可以輕易理解了:

>>> a = 3 + 3
>>> b = 3 - 3
>>> c = 3 * 3
>>> d = 3 / 3

現在,讓我們將 a、b、c、d 四個變數印出來,看看會不會是我們想的樣子吧!

>>> print(a)
6
>>> print(b)
0
>>> print(c)
9
>>> print(d)
1

是不是很簡單呢?接著我們來看看其他的運算符號要怎麼使用。


餘數


三除以二,餘一;八除以三,餘二。這是我們都知道也都理解的事情,但是如果要使用 Python 來計算餘數,要怎麼做呢?好在大多數的程式語言,都幫我們準備好了:

>>> e = 3 % 2
>>> print(e)
1
>>> f = 9 % 6
>>> print(f)
3

上述的例子中出現的「%」就是用來求餘數的運算符號。百分號「%」可以用來求前數除以後數所得的餘數。因為 3 除以 2 餘 1,因此 3%2 的運算結果即是 1;同理,9%6 的結果是 3。


整除除法


有時候我們在進行除法運算時,會遇上商數帶有小數點的情況。然而,有時候我們不需要小數點的存在,那要怎麼辦呢?假設現在有 15 顆糖果,要分給 7 個人,那麼你又會怎麼算呢?

>>> total = 15
>>> people = 7
>>> print(total / people)
2.142857142857143

如果像上面的例子一樣直接使用除法,那麼我們會得到,每個人要分 2.14 顆糖果這樣的結果。這種時候,小數點的存在就很煩人;好在,Python 內建了運算符號來解決這個問題:

>>> print(total // people)
2

注意到差別了嗎?一般的除法是「/」,而這個例子中使用的是兩個斜線「//」。雙斜線「//」在 Python 中代表的是「整除」的運算


次方


平常我們常使用到的次方運算,在 Python 中也相當的簡單,我們使用的是「**」的符號代表次方運算

>>> g = 3 ** 2
>>> print(g)
9


改變一個變數


假設現在我們有一個變數 x,值設定為 3:

>>> x = 3

此時,我們被要求將 x 的值變成本來的 3 倍,那我們的程式要怎麼寫呢?我們可以將新的變數 x 設為舊的變數 x 的 3 倍,像是這樣:

>>> x = 3 * x

次處要注意的是,這行程式所代表的並不是數學中「x=3x,所以x=0」這樣的方程式。在解讀這段程式時,我們應該將其想成:
  (新)變數 x  = 3 * (舊)變數 x

電腦在看到這段程式時,會將其解讀為:

>>> x = 3 * 3

因為 x 變數代表的值是 3。

但是,每次都寫「x = 3 * x」這麼一長串,未免也太過麻煩了吧?有沒有方法可以讓我們直覺性地將變數變為本來的 3 倍呢?當然有!下面我們宣告一個變數 y,將其值也設為 3:

>>> y = 3

我們要將其變成 3 倍,可以寫:

>>> y *= 3
>>> print(y)
9

這樣的運算符號,就好像在跟電腦溝通:
  變數 y 要乘以某一個數
  什麼數呢?
  乘以 3

電腦在解讀完後,便將 y 變成本來的 3 倍。

除了「*=」之外,還有「+=」、「-=」、「/=」、「%=」、「//=」、「**=」,讓我們使用以下的例子來統合這些運算符號吧!

>>> z = 5
>>> print("z is now", z)
z is now 5

>>> z += 3
>>> print("z is now", z)
z is now 8

>>> z *= 2
>>> print("z is now", z)
z is now 16

>>> z /= 4
>>> print("z is now", z)
z is now 4

>>> z -= -3
>>> print("z is now", z)
z is now 7

>>> z **= 2
>>> print("z is now", z)
z is now 49

>>> z %= 9
>>> print("z is now", z)
z is now 4


馬上練習!
完成 10 個練習題,
並且獲取學習點數!
開始練習
上一章節
下一章節
使用者分享的影片來自 YouTube。瞭解更多
+1 
感謝內容貢獻者 此篇文章由 1 位使用者共同編輯而成,並且由學呀的編輯團隊負責維護。點此查看編輯者名單。