Semorphe

縮排就是區塊

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

你會學到三件事

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

開始之前

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

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

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

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

🟢 先把編輯器打開,跟著下面一起做:跟著做

一、冒號 + 縮排

沒有大括號——冒號之後靠縮排:

1if score >= 60:2    print("及格")
變數score60≥"及格"印出如果則12
C++ Python
if (條件) { if 條件:
} 縮排結束
條件要括號 不用括號

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

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

二、elif

第三種以上的情況用 elif:

1if score >= 90:2    print("優等")3elif score >= 60:4    print("及格")5else:6    print("不及格")
變數score90≥"優等"印出"不及格"印出變數score60≥"及格"印出如果則否則,如果則否則1264

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

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

三、用字,不用符號

C++ Python
&& and
|| or
! not
true / false True / False(大寫開頭)

&& 在 Python 裡寫成 and:

1if 1 <= x <= 10 and score > 0:2    print("在範圍內")
1變數(自訂)10≤≤變數score0>而且"在範圍內"印出如果則12

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

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

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

C++ 裡這樣寫是錯的,而 Python 認得:

🔎 這一段是試一下——打了看結果就好,不要留在程式裡。

11 <= x <= 10       # 等於 1 <= x and x <= 10
1變數(自訂)10≤≤1

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

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

完成的樣子

這一課的參考做法——程式碼每一行的號碼,就印在對應的那塊積木上。

1score = 752if score >= 90:3    print("優等")4elif score >= 60:5    print("及格")6else:7    print("不及格")8 9x = 510if 1 <= x <= 10 and score > 0:11    print("在範圍內")
75變數score90≥"優等"印出"不及格"印出變數score60≥"及格"印出51變數x10≤≤變數score0>而且"在範圍內"印出如果則設定x為如果則否則,如果則否則設定score為1237591011

換你了

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

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

到編輯器做這一題:練習:改成讀進使用者輸入的分數

做一個

讀進一個分數:90 到 100 印「優等」,60 到 89 印「及格」,其餘印「不及格」。

🔴 規定要用 90 <= score <= 100 這種連寫的比較,不准用 and 串。 C++ 那邊寫 90 <= score <= 100 會編得過而算出錯的答案——想一下為什麼。 ⚠️ 裁判用的是 95。

到編輯器做這一題:做一個:成績分級(用 Python 的寫法)

這一課你做了什麼

如果卡住了

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