算一算
七個運算子,兩個要特別小心。 · ⏱ 約 25 分鐘
你會學到三件事
- 七個算術運算子
- 🔴
/ 和 // 不一樣
+= 是「拿出來、算一下、放回去」的縮寫
開始之前
前三課你會存資料、讀資料了。這一課讓它們變。
🟢 先把編輯器打開,跟著下面一起做:跟著做
一、七個
照著打上這幾行,把七種運算各印一次:
1a = 72b = 23print(a + b) # 94print(a - b) # 55print(a * b) # 146print(a / b) # 3.5 ← 除7print(a // b) # 3 ← 整數除8print(a % b) # 1 ← 餘數9print(a ** b) # 49 ← 次方
二、🔴 / 和 //
兩條斜線與一條斜線不是同一件事:
🔎 這一段是試一下——打了看結果就好,不要留在程式裡。
17 / 2 # 3.5 ——永遠是小數(float)27 // 2 # 3 ——把小數點後面丟掉
⚠️ / 就算除得盡也是小數:
🔎 這一段是試一下——打了看結果就好,不要留在程式裡。
1print(6 / 2) # 3.0 ← 不是 32print(6 // 2) # 3
所以「我要一個整數答案」的時候用 //。
⚠️ // 不是四捨五入,是往下取整:
🔎 這一段是試一下——打了看結果就好,不要留在程式裡。
1print(7 // 2) # 32print(-7 // 2) # -4 ← 🔴 不是 -3
負數那個很容易被忘掉。
三、% 取餘數
餘數用 %:
🔎 這一段是試一下——打了看結果就好,不要留在程式裡。
它比你現在想的有用得多:
| 寫法 |
判斷什麼 |
n % 2 == 0 |
是不是偶數 |
n % 10 |
個位數 |
n % 3 == 0 |
是不是 3 的倍數 |
四、順序和括號
和數學一樣:** 最先、然後 * / // %、最後 + -。
🔎 這一段是試一下——打了看結果就好,不要留在程式裡。
1print(2 + 3 * 4) # 14,不是 202print((2 + 3) * 4) # 20
記不住就加括號,括號永遠不會是錯的。
五、+=
這是同一件事的簡寫:
🔎 這一段是試一下——打了看結果就好,不要留在程式裡。
1total = 02total = total + 5
第二行從右往左讀:先算 total + 5,再放回 total。
它太常用了,所以有縮寫:
🔎 這一段是試一下——打了看結果就好,不要留在程式裡。
1total += 5 # 完全等於 total = total + 5
五個都有:+= -= *= /= //= %=
⚠️ Python 沒有 ++。 寫 n++ 是語法錯誤,要用 n += 1。
完成的樣子
這一課的參考做法——程式碼每一行的號碼,就印在對應的那塊積木上。
1a = 72b = 23print(a + b)4print(a - b)5print(a * b)6print(a / b)7print(a // b)8print(a % b)9print(a ** b)
把積木打散,自己排回去:排回去:把剛才那支程式的積木排好
換你了
讀進一個三位數,分別印出它的百位、十位、個位。
⚠️ 裁判餵的是 456。
⚠️ 提示:個位是 n % 10,十位是 n // 10 % 10,想一下為什麼。
到編輯器做這一題:練習:拆出百位、十位、個位
做一個
讀進一個金額,印出要給幾張 500、100、50、10、5、1(六行,由大到小)。
🔴 這一題一定要用 // 不能用 /,試試看用 / 會印出什麼。
⚠️ 裁判用的是 1688。
到編輯器做這一題:做一個:找零錢
這一課你做了什麼
- 你用了七個算術運算子
- 你知道
/ 一定給小數、// 往下取整
- 你用
+= 取代了 x = x + ...
如果卡住了
| 你看到 |
多半是因為 |
6 / 2 印出 3.0 |
/ 一定是小數。要整數用 // |
-7 // 2 得到 -4 |
那是對的——往下取整,不是四捨五入 |
n++ 語法錯誤 |
Python 沒有 ++。用 n += 1 |
| 答案和預期差很多 |
運算順序。加括號 |
% 對小數怪怪的 |
浮點數本來就有誤差。取餘數盡量用整數 |
在編輯器打開這一課 →