選擇
讓程式走兩條不同的路。 · ⏱ 約 30 分鐘
你會學到三件事
if / elif / else
- 🔴 縮排就是語法——不是排版
and / or / not 和六個比較符號
開始之前
到目前為止,程式每一行都會跑。
這一課開始有些行會被跳過——而哪些被跳過取決於資料。
這是程式第一次自己做決定。
一、if
score = 75
if score >= 60:
print("及格")
兩個部位:
if score >= 60 :
└─ 條件 ─┘ └ 冒號不能少
print("及格")
└── 縮排四格 = 「這是 if 裡面的」
⚠️ 冒號和縮排兩個都不能少,而它們是新手最常漏的兩樣東西。
二、🔴 縮排就是語法
if score >= 60:
print("及格")
print("恭喜") # ← 也在 if 裡面
print("結束") # ← 不在,永遠會印
縮排幾格決定一行屬於誰。 這不是排版習慣,是 Python 的語法。
| 慣例 |
|
| 縮排用 4 個空格 |
|
| ⚠️ 不要混用 tab 和空格 |
看起來一樣,而 Python 會給你 TabError |
| 同一層要對齊 |
差一格就是 IndentationError |
好處是「看起來的結構」和「實際的結構」永遠一致。
別的語言用大括號,於是縮排可以騙人——Python 裡不會。
三、elif 和 else
if score >= 90:
print("優等")
elif score >= 60:
print("及格")
else:
print("不及格")
⚠️ 由上往下比,第一個成立的就進去,其餘全部跳過。
所以順序有意義——把 >= 60 寫在前面的話,90 分的人會被判成「及格」。
⚠️ 沒有 else if 這種寫法,只有 elif。
四、六個比較
| 符號 |
|
> < |
大於、小於 |
>= <= |
大於等於、小於等於 |
== |
等於(⚠️ 兩個等號) |
!= |
不等於 |
🔴 = 和 ==
score = 60 # 「把 60 放進 score」——它會【改變】score
score == 60 # 「score 是不是 60」——它【只是問】
⚠️ 在 if 裡寫成 = 的話 Python 會直接報語法錯誤——
這一點比 C++ 好(那邊會安靜地跑出錯的結果)。
五、串起來
if 60 <= score < 90 and score != 75:
print("普通")
| 符號 |
什麼時候成立 |
and |
兩邊都成立 |
or |
至少一邊成立 |
not |
把成立與不成立對調 |
🟢 而 60 <= score < 90 在 Python 裡就是你想的那個意思
(很多語言不是這樣)。這叫鏈式比較。
完成的樣子
score = 75
if score >= 90:
print("優等")
elif score >= 60:
print("及格")
else:
print("不及格")
換你了
讀進一個年份,判斷它是不是閏年。
規則:能被 4 整除、而且(不能被 100 整除,或者能被 400 整除)。
⚠️ 括號的位置決定答案對不對——2000 年是閏年,1900 年不是。
這一課你做了什麼
- 你用
if / elif / else 讓程式走了不同的路
- 你知道縮排是語法,不是排版
- 你分得出
=(放進去)和 ==(問一下)
如果卡住了
| 你看到 |
多半是因為 |
SyntaxError 指著 if 那行 |
冒號忘了 |
IndentationError |
該縮沒縮,或縮排不一致 |
TabError |
tab 和空格混用了。全部改成 4 個空格 |
| 90 分被判成「及格」 |
elif 的順序反了——大的條件要在前面 |
else if 語法錯誤 |
Python 只有 elif |
在編輯器打開這一課 →