Python 基礎:條件判斷觀念教學,讓你的程式學會做決策!
Python 基礎:條件判斷觀念教學,讓你的程式學會做決策!
什麼是條件判斷? 在現實生活中,我們無時無刻不在做決定:「如果明天下雨,我就帶傘;否則,我就不帶傘。」在程式世界中,這種邏輯稱為 「條件判斷(Conditional Judgment)」。
課程概要
- 程式裡的條件是什麼
- 單一條件的判斷
- 二選一的條件判斷
- 多選一的條件判斷
- 使用邏輯運算或是不等式進行複雜條件判斷
- 數字猜測遊戲實作範例
- 進階技巧:巢狀條件判斷(Nested If)
- 常見錯誤
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. 二選一的條件判斷
- 條件成立執行某段程式碼,不成立則執行另一段程式碼
- 使用
if和else來進行條件判斷。 - 範例程式碼:
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. 巢狀條件判斷
- 在現實生活中,決策往往不是「非黑即白」,而是由一連串的選擇組成的。當我們在一個
if或else裡面又放入另一個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 元。")
- 執行結果:
- 若輸入
y跟40,顯示:您好,一般會員!享有優惠價 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.