Semorphe

算一算

七個運算子,兩個要特別小心。 · ⏱ 約 25 分鐘

你會學到三件事

  1. 七個算術運算子
  2. 🔴 /// 不一樣
  3. += 是「拿出來、算一下、放回去」的縮寫

開始之前

前三課你會存資料、讀資料了。這一課讓它們

一、七個

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——想一下為什麼。

這一課你做了什麼

如果卡住了

你看到 多半是因為
6 / 2 印出 3.0 / 一定是小數。要整數用 //
-7 // 2 得到 -4 那是對的——往下取整,不是四捨五入
n++ 語法錯誤 Python 沒有 ++。用 n += 1
答案和預期差很多 運算順序。加括號
% 對小數怪怪的 浮點數本來就有誤差。取餘數盡量用整數
在編輯器打開這一課 →