Semorphe

縮排就是區塊

大括號不見了,而縮排變成語法。 · ⏱ 約 25 分鐘

你會學到三件事

  1. 縮排就是 C++ 的大括號——它不是排版,是語法
  2. elifandornot
  3. Python 可以寫 1 <= x <= 10,而它是對的

開始之前

C++ 入門第 9 課那個坑還記得嗎——

if (score >= 60)
    cout << "及格" << endl;
    cout << "恭喜" << endl;   // ← 這一行無條件會跑

縮排騙了你,因為 C++ 不看縮排。

Python 把這件事反過來:縮排就是唯一的依據,所以它騙不了你。

一、冒號 + 縮排

if score >= 60:
    print("及格")
C++ Python
if (條件) { if 條件:
} 縮排結束
條件要括號 不用括號

⚠️ 冒號不能少,而它是 Python 裡最常忘的一個字元。

⚠️ 縮排要一致。習慣是 4 個空格。混用 tab 和空格會得到 TabError——那是 Python 少數幾個「看起來一樣而不一樣」的坑。

二、elif

if score >= 90:
    print("優等")
elif score >= 60:
    print("及格")
else:
    print("不及格")

elif 就是 else if 縮寫成一個字。

⚠️ 沒有 else if 這種寫法——寫了會是語法錯誤。

三、用字,不用符號

C++ Python
&& and
|| or
! not
true / false True / False大寫開頭
if 1 <= x <= 10 and score > 0:
    print("在範圍內")

四、🟢 1 <= x <= 10 在這裡是對的

C++ 入門第 6 課特別警告過:在 C++ 裡 1 <= a <= 10 永遠成立, 因為它被拆成 (1 <= a) <= 10

而在 Python 裡——它就是你想的那個意思

1 <= x <= 10       # 等於 1 <= x and x <= 10

這叫「鏈式比較」,是 Python 特別做的一件事。

同一段文字,兩個語言,兩個不同的答案。 這就是為什麼「會寫程式」不等於「會寫這個語言」。

完成的樣子

score = 75
if score >= 90:
    print("優等")
elif score >= 60:
    print("及格")
else:
    print("不及格")

x = 5
if 1 <= x <= 10 and score > 0:
    print("在範圍內")

換你了

把它改成讀進使用者輸入的分數。

⚠️ 記得 input() 給的是文字(上一課那件事)。

這一課你做了什麼

如果卡住了

你看到 多半是因為
SyntaxError 指著 if 那行 冒號忘了
IndentationError 縮排不一致,或該縮沒縮
TabError tab 和空格混用了。全部改成 4 個空格
NameError: true Python 是 True,大寫開頭
else if 語法錯誤 Python 只有 elif
在編輯器打開這一課 →