機
器
人
數字運算
程式這種東西,與數字是脫離不了關係的。這不代表數學不好的人寫不了的程式,而是代表你需要會加減乘除等基本運算才能寫程式。對我們來說,這樣的數字運算根本就是小菜一疊,那麼要怎麼在 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」這樣的方程式。在解讀這段程式時,我們應該將其想成:
<i> (新)變數 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