算一算
七個運算子,兩個要特別小心。 · ⏱ 約 25 分鐘
你會學到三件事
- 七個算術運算子
- 🔴
/ 和 // 不一樣
+= 是「拿出來、算一下、放回去」的縮寫
開始之前
前三課你會存資料、讀資料了。這一課讓它們變。
一、七個
a = 7
b = 2
print(a + b) # 9
print(a - b) # 5
print(a * b) # 14
print(a / b) # 3.5 ← 除
print(a // b) # 3 ← 整數除
print(a % b) # 1 ← 餘數
print(a ** b) # 49 ← 次方
二、🔴 / 和 //
7 / 2 # 3.5 ——永遠是小數(float)
7 // 2 # 3 ——把小數點後面丟掉
⚠️ / 就算除得盡也是小數:
print(6 / 2) # 3.0 ← 不是 3
print(6 // 2) # 3
所以「我要一個整數答案」的時候用 //。
⚠️ // 不是四捨五入,是往下取整:
print(7 // 2) # 3
print(-7 // 2) # -4 ← 🔴 不是 -3
負數那個很容易被忘掉。
三、% 取餘數
print(7 % 2) # 1
它比你現在想的有用得多:
| 寫法 |
判斷什麼 |
n % 2 == 0 |
是不是偶數 |
n % 10 |
個位數 |
n % 3 == 0 |
是不是 3 的倍數 |
四、順序和括號
和數學一樣:** 最先、然後 * / // %、最後 + -。
print(2 + 3 * 4) # 14,不是 20
print((2 + 3) * 4) # 20
記不住就加括號。括號永遠不會是錯的。
五、+=
total = 0
total = total + 5
第二行從右往左讀:先算 total + 5,再放回 total。
它太常用了,所以有縮寫:
total += 5 # 完全等於 total = total + 5
五個都有:+= -= *= /= //= %=
⚠️ Python 沒有 ++。 寫 n++ 是語法錯誤,要用 n += 1。
完成的樣子
a = 7
b = 2
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a // b)
print(a % b)
print(a ** b)
換你了
讀進一個三位數,分別印出它的百位、十位、個位。
⚠️ 提示:個位是 n % 10,十位是 n // 10 % 10——想一下為什麼。
這一課你做了什麼
- 你用了七個算術運算子
- 你知道
/ 一定給小數、// 往下取整
- 你用
+= 取代了 x = x + ...
如果卡住了
| 你看到 |
多半是因為 |
6 / 2 印出 3.0 |
/ 一定是小數。要整數用 // |
-7 // 2 得到 -4 |
那是對的——往下取整,不是四捨五入 |
n++ 語法錯誤 |
Python 沒有 ++。用 n += 1 |
| 答案和預期差很多 |
運算順序。加括號 |
% 對小數怪怪的 |
浮點數本來就有誤差。取餘數盡量用整數 |
在編輯器打開這一課 →