🐍 Python 語法判斷實務指南

 

🐍 Python 語法判斷實務指南

這個指南將涵蓋在 Python 程式語言中判斷不同語法結構的實務步驟、細節、案例,以及如何撰寫提示詞(Prompt)來生成這些案例。


📝 判斷結構一:條件判斷式 (if-elif-else)

條件判斷式允許程式根據不同的條件執行不同的程式碼區塊。

📌 步驟詳解

  1. 定義條件(if): 使用 if 關鍵字,後接一個 布林表達式(Boolean Expression)。如果這個表達式評估為 True,則執行 if 區塊內的程式碼。

  2. 定義次要條件(elif): 使用 elifelse if 的縮寫)關鍵字,後接另一個布林表達式。只有當上方的 ifelif 條件都評估為 False 時,才會檢查這個 elif 條件。

  3. 定義預設情況(else): 使用 else 關鍵字。它不需要任何條件,會在所有上方的 ifelif 條件都評估為 False 時執行。

  4. 注意縮排: 每個條件後面的程式碼區塊必須使用縮排(通常是 4 個空格)來表示它們屬於該條件結構。

💡 案例分析 (3 個)

案例 1:判斷成績等級

  • 目的: 根據分數 (score) 判斷等級(A、B、C 或不及格)。

  • 細節講解:

    • if score >= 90: 檢查最高條件。

    • elif score >= 80: 只有在分數小於 90 時才檢查是否大於或等於 80

    • elif score >= 60: 只有在分數小於 80 時才檢查是否大於或等於 60

    • else: 處理所有小於 60 的情況。

  • 程式碼:

    Python
    score = 85
    if score >= 90:
        print("A")
    elif score >= 80:
        print("B")
    elif score >= 60:
        print("C")
    else:
        print("Fail") # 輸出: B
    

案例 2:判斷數字奇偶性

  • 目的: 判斷一個數字 (number) 是正數、負數還是零,並進一步判斷其奇偶性。

  • 細節講解:

    • 巢狀結構: 在外層 if 判斷是正數後,內層使用 number % 2 == 0(取餘數)來判斷奇偶性。

    • elif number < 0: 獨立處理負數。

    • else: 處理 number == 0 的情況。

  • 程式碼:

    Python
    number = -10
    if number > 0:
        if number % 2 == 0:
            print("Positive and Even")
        else:
            print("Positive and Odd")
    elif number < 0:
        print("Negative") # 輸出: Negative
    else:
        print("Zero")
    

案例 3:判斷多個條件的組合

  • 目的: 判斷使用者是否為成年且具有有效證件。

  • 細節講解:

    • 使用邏輯運算子 and 來組合多個條件:age >= 18 and has_id == True。只有兩邊都為 True 時,整個條件才成立。

    • elif age < 18 and has_id == True: 處理未成年但有證件的邊界情況。

  • 程式碼:

    Python
    age = 22
    has_id = True
    if age >= 18 and has_id == True:
        print("Access Granted") # 輸出: Access Granted
    elif age < 18:
        print("Underage")
    else:
        print("ID Required")
    

💡 提示詞 (Prompt) 範例

Prompt 範例:

Python 語法:條件判斷式

請生成一個包含 3 個 獨立案例的 if-elif-else 結構程式碼。這 3 個案例需涵蓋以下情境:

  1. 判斷一個年份是否為閏年(可被 400 整除,或可被 4 整除但不能被 100 整除)。

  2. 根據一天中的**時間(小時)**輸出「早上好」、「下午好」或「晚上好」。

  3. 使用巢狀 if 來判斷一個數字是否在範圍 10 到 50 之間為偶數。


🔁 判斷結構二:for 迴圈

for 迴圈用於對一個可迭代物件(Iterable,如列表、字串、範圍等)中的所有元素進行迭代。

📌 步驟詳解

  1. 定義疊代器: 使用 for 關鍵字,後接一個迴圈變數(Loop Variable,用於接收當前元素)。

  2. 定義可迭代物件: 使用 in 關鍵字,後接你想要遍歷的集合

  3. 執行程式碼區塊: 迴圈每跑一次,都會執行縮排內的程式碼區塊。

  4. 常用範圍生成: 常用 range(start, stop, step) 函式來生成一個數字序列進行迭代。

💡 案例分析 (3 個)

案例 1:遍歷列表(List)

  • 目的: 遍歷水果列表 (fruits) 並印出每個水果的名稱。

  • 細節講解: 迴圈變數 fruit 會依序被賦予列表中的元素值 ("apple", "banana", "cherry")。

  • 程式碼:

    Python
    fruits = ["apple", "banana", "cherry"]
    for fruit in fruits:
        print(f"I like {fruit}")
    # 輸出: I like apple, I like banana, I like cherry
    

案例 2:使用 range() 進行計數

  • 目的: 計算 1 到 5 的總和。

  • 細節講解: range(1, 6) 會生成一個包含 $1, 2, 3, 4, 5$ 的序列。total += itotal = total + i 的縮寫。

  • 程式碼:

    Python
    total = 0
    for i in range(1, 6):
        total += i
    print(f"Total: {total}") # 輸出: Total: 15
    

案例 3:遍歷字串並使用 break

  • 目的: 遍歷一個字串 (text),但在遇到特定字元時停止。

  • 細節講解:

    • 字串也是一個可迭代物件,char 會是字串中的每一個字母。

    • if char == 'o': 條件成立時,執行 break 關鍵字,它會立即終止整個迴圈的執行。

  • 程式碼:

    Python
    text = "programming"
    for char in text:
        if char == 'o':
            break
        print(char)
    # 輸出: p, r, g
    

💡 提示詞 (Prompt) 範例

Prompt 範例:

Python 語法:for 迴圈

請生成一個包含 3 個 獨立案例的 for 迴圈程式碼。這 3 個案例需涵蓋以下情境:

  1. 使用 range() 函式以步長 2 遍歷 $0$$10$(不包含 $10$),並印出數字。

  2. 遍歷一個包含五個元素的字典(Dictionary),並同時印出 鍵 (key)值 (value)

  3. 遍歷一個數字列表,並使用 continue 關鍵字跳過所有小於 50 的數字,只印出大於等於 50 的數字。


🔄 判斷結構三:while 迴圈

while 迴圈會在給定的條件評估為 True 時,重複執行程式碼區塊,直到條件評估為 False

📌 步驟詳解

  1. 初始化變數: 在迴圈開始前,必須先初始化一個或多個用於控制迴圈的變數。

  2. 定義條件: 使用 while 關鍵字,後接一個布林表達式

  3. 更新變數: 在迴圈區塊內,必須包含能使條件最終變為 False 的語句(通常是對控制變數進行更新),否則將導致無限迴圈(Infinite Loop)。

  4. 注意縮排: 執行區塊必須使用縮排。

💡 案例分析 (3 個)

案例 1:簡單計數器

  • 目的: 從 1 數到 5。

  • 細節講解:

    • 初始化 count = 1

    • 條件 count <= 5 只要為 True 就繼續執行。

    • 更新: count += 1 是防止無限迴圈的關鍵步驟。

  • 程式碼:

    Python
    count = 1
    while count <= 5:
        print(count)
        count += 1
    # 輸出: 1, 2, 3, 4, 5
    

案例 2:使用者輸入控制迴圈

  • 目的: 提示使用者輸入一個正數,直到輸入符合要求。

  • 細節講解:

    • 初始化 number = 0

    • 條件 number <= 0 讓迴圈在輸入值為零或負數時持續執行。

    • 一旦輸入一個正數(例如 10),條件變為 10 <= 0 ($\text{False}$),迴圈終止。

  • 程式碼:

    Python
    number = 0
    while number <= 0:
        try:
            number = int(input("Enter a positive number: "))
        except ValueError:
            print("Invalid input. Try again.")
    print(f"You entered: {number}")
    

案例 3:使用布林旗標和 break

  • 目的: 模擬一個隨機事件,直到特定條件達成後停止。

  • 細節講解:

    • 使用 flag = True 作為控制變數,條件為 while flag:

    • 當隨機數 random_number 等於 5 時,印出訊息並執行 break 立即終止迴圈。

  • 程式碼:

    Python
    import random
    flag = True
    while flag:
        random_number = random.randint(1, 10)
        print(f"Current number: {random_number}")
        if random_number == 5:
            print("Found 5! Stopping.")
            break
    # 輸出會不同,直到遇到 5,例如: Current number: 8, Current number: 5, Found 5! Stopping.
    

💡 提示詞 (Prompt) 範例

Prompt 範例:

Python 語法:while 迴圈

請生成一個包含 3 個 獨立案例的 while 迴圈程式碼。這 3 個案例需涵蓋以下情境:

  1. 使用 while 迴圈計算 $1$$n$ (n=4) 的階乘(Factorial)。

  2. 使用 while True: 創建一個無限迴圈,並透過使用者輸入特定退出指令(例如 'quit')來使用 break 終止迴圈。

  3. 使用 while 迴圈將一個數字 $12345$ 反轉(Reverse),即得到 $54321$

留言