目錄

Python 中的加減乘除:從四則運算搞懂 Expression

本篇是 Python 程式語言入門教學系列的第二篇文章。上一篇我們把環境準備好了,這一篇開始真的動手寫 Python 程式碼:從生活中最熟悉的「加減乘除」下手,把數學算式寫成電腦看得懂的程式。

除了四則運算之外,這篇也會帶到 Expression(表達式)這個概念。它聽起來很學術,其實就是你從小寫到大的「算式」,只是換成程式的說法。搞懂它,後面學變數、條件判斷都會順很多。

前一篇文章中,我們介紹了 Google Colaboratory(Colab)這款好用的線上編輯器。它跑在瀏覽器裡,不用在自己電腦上裝 Python,對初學者來說是最沒有負擔的起手式。

在開始撰寫 Python 程式碼前,先到雲端硬碟中新增一個 Colab 檔案,並給它一個好認的名稱。之後每一段程式碼,都會寫在 Colab 的儲存格(Cell)裡執行。

先來寫一個最簡單的程式:計算 123 + 456 等於多少?這題用計算機一秒就能算出來,而以 Python 程式碼來說,寫法幾乎和數學算式一模一樣:

123 + 456

在 Colab 的儲存格(Cell)中執行這行程式碼,就會直接看到答案。同理,如果我們希望計算 907 - 456 等於多少,你一定可以馬上寫出程式:

907 - 456

乘法和除法則要注意符號跟數學課本不太一樣:乘號用星號 *,除號用斜線 /,而不是 x÷。以下分別計算 1445 x 404 與 1309 ÷ 56 的答案:

1445 * 404
1309 / 56

如果上面這幾題你都寫得出來,那你已經學會如何用 Python 進行四則運算了。

接著來看 Expression 的概念。實際上,我們剛剛所撰寫的那幾行程式碼,就是 Expression(表達式)。

Expression 的組成示意圖,標示出算式中的 Value(數值)與 Operator(運算子)兩個部分。
Expression 的概念

由上圖可以發現,Expression 由兩種東西組成:Value(數值)與 Operator(運算子)。用更白話的方式理解,Expression 就是數學的「算式」,裡面包含了很多「數值」以及「運算符號」。

Expression 的特色在於能夠被 Evaluate(運算),可以從一個很長的「式子」運算成一個「數值」。例如 2 + 2 + 2 + 2 + 2 + 2 是一個 Expression,可以被 Evaluate 為 12。所以前面那些程式碼在做的事情,就是我們寫下一行 Expression,再交由電腦 Evaluate 出結果:

123 + 456

需要特別注意的是,電腦在 Evaluate 的過程中,會遵守「先乘除後加減」以及「括號內的東西先算」這樣的原則。這代表 1 + 2 * 3 得到的是 7 而不是 9,如果你真的想先算加法,就得自己補上括號寫成 (1 + 2) * 3。撰寫 Expression 時記得留意運算順序,否則會得到非預期的答案。

在 Python 中,除了基本的加減乘除外,還有三個比較進階的 Operator。首先是 **,表示「次方」。例如,執行以下程式碼,計算「2 的 3 次方」:

2 ** 3

% 則是表示「取餘數」。例如 15 ÷ 4 = 3(商數 3)⋯ 3(餘數 3)。如果我們希望在程式中計算 15 除以 4 的餘數,就可以透過 %

15 % 4

最後,// 表示「取商數」。同樣以 15 ÷ 4 為例,如果我們希望在程式中計算 15 除以 4 的商數,就可以透過 //

15 // 4

這裡順帶提一個容易搞混的地方:/ 算出來的是一般的除法結果,// 則只保留整數的部分。兩個看起來只差一個斜線,用途卻完全不同。

Colab 中執行錯誤程式碼後跳出 SyntaxError 錯誤訊息的畫面。
程式初學者常見的錯誤:Syntax Error

「Syntax Error」是在寫程式時經常會看到的錯誤訊息,中文是「語法錯誤」,也就是電腦在告訴我們:你寫的 code 語法有問題啦!以上圖而言,我們原本希望計算:

1 + 3 * 4

然而,卻漏打了 3 變成:

1 + * 4

加號的後方直接遇到乘號,當然沒有辦法運算,因此電腦就顯示了 Syntax Error 的錯誤訊息。看到這個訊息時先別緊張,它通常代表某個地方少打或多打了字元,回頭把那一行讀過一遍就找得出來。

另外補充一點:在撰寫 code 時,我們經常會在數字與符號之間加入「空白」。這裡的空白並不會造成語法錯誤,純粹是為了讓程式碼看起來更整齊、簡潔。

在本篇文章中,我們學習了 Python 最基礎的語法以及 Expression 的概念,並以 Python 程式碼實作各種不同的數學運算,包含加減乘除與 **%// 三個進階的 Operator。順帶也認識了初學者最常遇到的 Syntax Error 是怎麼一回事。

下一篇文章中,將會介紹程式中「變數」(Variable)的概念,讓我們可以把算出來的結果存起來重複使用,而不是每次都重寫一次算式。