Post

Python 基礎:條件判斷觀念教學,讓你的程式學會做決策!

Python 基礎:條件判斷觀念教學,讓你的程式學會做決策!

什麼是條件判斷? 在現實生活中,我們無時無刻不在做決定:「如果明天下雨,我就帶傘;否則,我就不帶傘。」在程式世界中,這種邏輯稱為 「條件判斷(Conditional Judgment)」。

課程概要

  1. 程式裡的條件是什麼
  2. 單一條件的判斷
  3. 二選一的條件判斷
  4. 多選一的條件判斷
  5. 使用邏輯運算或是不等式進行複雜條件判斷
  6. 數字猜測遊戲實作範例
  7. 進階技巧:巢狀條件判斷(Nested If)
  8. 常見錯誤

1, 程式裡的條件是什麼

  • 程式裡的條件大多是資料比大小,比較結果只會有兩種:True(成立) 或 False(不成立),我們在這邊先認識比較運算子。
    • 等於 == ,例如:x == 10(請特別注意是兩個等號)
    • 不等於 != ,例如:x != 0
    • 大於 > ,例如:x > 5
    • 小於 < ,例如:x < 20
    • 大於等於 >= ,例如:x >= 60
    • 小於等於 <= ,例如:x <= 100
  • 條件判斷的語法
    • if 語句後需接條件跟冒號 :,例如: if x==0:,其中x==0是這個條件判斷的條件
    • 額外符合的程式碼需要縮排以表示其隸屬於 if 條件內。

2. 單一條件的判斷

  • 當條件成立(True)時,執行某段程式碼。
  • 在 Python 中,條件判斷使用 if 來執行。
  • 範例程式碼:
    1
    2
    3
    
    grade = int(input("請輸入成績:"))
    if grade >= 60:
        print("恭喜及格")
    
  • 執行結果:
    • 當輸入 80,條件成立,所以執行條件判斷裡的程式碼,顯示:恭喜及格
    • 當輸入 30,條件不成立,所以不執行條件判斷裡的程式碼。

提醒:縮排的重要性 在 Python 中,if 語句末尾一定要加上冒號 :。更重要的是,接下來的程式碼必須 「縮排(Indentation)」(通常是 4 個空格或一個 Tab)。如果沒有縮排,Python 會不知道哪些程式碼屬於這個判斷式!

3. 二選一的條件判斷

  • 條件成立執行某段程式碼,不成立則執行另一段程式碼
  • 使用 ifelse 來進行條件判斷。
  • 範例程式碼:
    1
    2
    3
    4
    5
    
    grade = int(input("請輸入成績:"))
    if grade >= 60:
        print("恭喜及格")
    else:
        print("重補修見")
    
  • 執行結果:
    • 當輸入 100,條件成立,所以執行if裡面的程式碼,顯示:恭喜及格
    • 當輸入 50,條件不成立,所以執行else裡面的程式碼,顯示:重補修見

4. 多選一的條件判斷

  • 如果條件一成立,執行某段程式碼,否則如果條件二成立,執行另一段程式碼,以此類推
  • 第一個條件使用if,第二個條件開始使用elif 來設定多個條件。
  • 範例程式碼:
    1
    2
    3
    4
    5
    6
    7
    
    grade = int(input("請輸入成績:"))
    if grade >= 80:
        print("考得不錯")
    elif grade >= 60:
        print("恭喜及格")
    else:
        print("重補修見")
    
  • 執行結果:
    • 當輸入 90,第一個條件成立,顯示:考得不錯
    • 當輸入 70,第一個條件不成立,第二個條件成立,顯示:恭喜及格
    • 當輸入 50,前兩個條件都不成立,則執行else裡的程式碼,顯示:重補修見

提醒:多選一的條件判斷會只會執行其中一段程式碼,即便有數個條件都成立,只會執行最早成立的那一段程式碼。

5. 使用邏輯運算或是不等式進行複雜條件判斷

  • 如果你想要同時判斷多個條件(例如:成績及格 且 出席率達標),可以使用邏輯運算子來組合:
    • and (且):左右兩邊的條件都成立,結果才為 True。
    • or (或):只要其中一個條件成立,結果即為 True。
    • not (非):反轉條件的結果(True 變 False,False 變 True)。
  • 範例程式碼:
    1
    2
    3
    4
    5
    
    grade = int(input("請輸入成績:"))
    if grade >= 80 and grade <= 100:
        print("介於80到100之間")
    elif 80>grade>=60:
        print("大於60未滿80")
    
  • 執行結果:
    • 當輸入 90,顯示:介於80到100之間
    • 當輸入 70,顯示:大於60未滿80

6. 數字猜測遊戲

  • 讓玩家猜隨機生成的數字。
  • 範例程式碼:
    1
    2
    3
    4
    5
    6
    7
    
    import random
    number = random.randint(1, 2)
    guess = int(input("猜一個數字(1或2):"))
    if guess == number:
        print("猜對了")
    else:
        print("猜錯了")
    
  • 執行結果:
    • 若隨機生成數字為 1 且使用者輸入 1,顯示:猜對了。
    • 若使用者輸入 2,顯示:猜錯了。

輸入檢查

  • 確保輸入的是數字。
  • 範例程式碼:
    1
    2
    3
    4
    5
    6
    
    guess = input("請輸入數字:")
    if guess.isdigit():
        guess = int(guess)
        # 繼續進行猜數字的邏輯
    else:
        print("請重新輸入")
    
  • 執行結果:
    • 若輸入 abc,顯示:請重新輸入。

7. 巢狀條件判斷

  • 在現實生活中,決策往往不是「非黑即白」,而是由一連串的選擇組成的。當我們在一個 ifelse 裡面又放入另一個 if 判斷時,這就稱為「巢狀條件判斷」。
  • 為什麼需要巢狀判斷?
    • 想像一下你去電影院買票的邏輯:
    • 第一層判斷: 你是不是會員?
    • 第二層判斷: 如果是會員,你是「尊榮會員」還是「一般會員」?
    • 第三層判斷: 如果不是會員,你的年齡是否符合「學生優惠」?
    • 這種「層層遞進」的邏輯,就必須靠巢狀結構來完成。
  • 語法結構與縮排重點 在 Python 中,巢狀判斷最需要注意的是「縮排(Indentation)」。每一層新的 if 都必須比上一層更往右縮排,這也是 Python 用來辨識程式碼屬於哪一個區塊的唯一方式。下面例子為電影院購票系統。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    is_member = input("請問是會員嗎?(y/n): ")
    age = int(input("請輸入您的年齡:"))
    
    if is_member == "y":
      # 這裡是第一層 if 的內部 (會員邏輯)
        if age >= 60:
            print("您好,尊榮會員!享有長者優惠價 150 元。")
        else:
            print("您好,一般會員!享有優惠價 200 元。")
    else:
        # 這裡是第一層 else 的內部 (非會員邏輯)
        if age < 18:
            print("非會員學生票:250 元。")
        else:
            print("全票:300 元。")
    
    • 執行結果:
    • 若輸入 y40,顯示:您好,一般會員!享有優惠價 200 元。

8. 常見錯誤:= 與 == 的差別

  • 這是一個常見的錯誤,很容易跟數學混肴:
    • = (一個等號):是用來「指定數值」給變數。例如 x = 10
    • == (兩個等號):是用來「比較」兩邊是否相等。例如 x == 10

提醒: 如果你在 if 語句中只寫了一個等號,Python 會噴出語法錯誤(SyntaxError),請務必檢查!

課程小結

掌握了條件判斷,你的程式就不再只是死板的指令清單,而是具備了初步「思考能力」的系統。

✍️ 實作練習:換你動手做做看

  • 練習平台:點此前往解題系統
  • 課程代碼:SzNTKb
  • 練習目標
    • 練習完成第4個作業:YouTube線上課程 - 課堂作業 條件判斷
    • 練習完成第5個作業:YouTube線上課程 - 課堂作業 巢狀條件
This post is licensed under CC BY 4.0 by the author.

© homedad. Some rights reserved.

Using the Chirpy theme for Jekyll.