## 第三章:控制流程工具 ### 條件語句 * #### if 判斷 if 語句用於根據條件執行不同的代碼塊。基本語法如下: ```python= # condition 和 another_condition 視為 bool if condition: # 當 condition 為真時執行這段代碼 elif another_condition: # 當 another_condition 為真時執行這段代碼 else: # 當所有條件都不滿足時執行這段代碼 ``` ```python= a = 10 b = 5 if b > a: print("b 大於 a") elif a > b: print("a 大於 b") else: print("a 等於 b") ``` **三元運算子**: 在 python 使用三元運算子(ternary conditional operator) 好處是程式碼可以看起來比較簡短, 在某些情況 python 使用三元運算子簡化後 code 會變得清爽簡短許多 ```python= condition_is_true if condition else condition_is_false ``` 簡易判斷及格 ```python= score = 75 status = "及格" if score >= 60 else "不及格" print(status) ``` :::spoiler 作業解答:判斷是否及格 ```python= Chinese = int(input('輸入國文成績')) English = int(input('輸入英文成績')) if Chinese >= 60 and English >= 60 : print("及格") elif Chinese >= 60 : print("只有中文及格") elif English >= 60 : print("只有英文及格") else: print("不及格") ``` ::: :::spoiler 作業 2 解答:輸入出生年份,判斷是否大於18歲 ```python= bornYear = input("輸入出生年份(西元):") age = 2025 - int(bornYear) if age > 18: print("大於 18 歲") elif age == 18: print("剛好 18 歲") else: print("小於 18 歲") ``` ::: --- ### 循環 * #### for 循環 for 循環用於遍歷一個序列(如列表、元組或字串)。基本語法如下: ```python= for item in sequence: # 對於 sequence 中的每個 item 執行這段代碼 ``` 用數字範圍 ```python= for i in range(10): print(i) #依序輸出 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ``` :::spoiler 作業:輸出 5 x 1 ~ 5 x 9 - 作法一 ```python= for i in range(1, 10): # 輸出二擇一 print(f'5 x {i} = {5*i}') print('5 x', i, '=', 5*i) ``` - 作法二 ```python= for i in range(10): if i != 0: # 或使用後面教的 continue # 輸出二擇一 print(f'5 x {i} = {5*i}') print('5 x', i, '=', 5*i) ``` ::: * #### while 循環 while 循環在條件為真時重複執行一段代碼。基本語法如下: ```python= while condition: # 當 condition 為真時執行這段代碼 ``` ```python= a = 10 b = 5 while a > b: # a > b 不成立時跳出,會在 a == b 時跳出 b = b + 1 print(b) # b = 10 ``` * **控制迴圈(while/for)的行為** **continue** : 跳過本次迴圈,進入下一輪判斷 ```python= # 使用 continue 忽略偶數,只印出奇數 i = 0 while i < 10: i += 1 if i % 2 == 0: continue # 跳過偶數,直接進入下一輪 print(i) # 輸出: 1, 3, 5, 7, 9 ``` **break** : 立刻終止整個迴圈 ```python= # 使用 break 在找到第一個可被 7 整除的數時停止 n = 0 while n < 20: n += 1 if n % 7 == 0: print(f"找到第一個可被 7 整除的數:{n}") break # 立即跳出迴圈 ``` **pass** : 控制迴圈或條件中的空操作 ```python= # 使用 pass 暫時略過負數處理,等待未來補上邏輯 nums = [3, -1, 5, -6, 9] for num in nums: if num < 0: pass # 負數處理邏輯尚未實作,先跳過 else: print(f"處理正數:{num}") ``` :::spoiler 作業:輸入成績,直到成績大於 60 時,輸出“及格了”並跳出迴圈 ```python= while True: score = int(input("輸入成績:")) if score >= 60: print("及格了") break ``` ::: :::spoiler 作業2:輸入成績,直到成績大於 60 的次數大於三次,輸出“及格三次”並跳出迴圈 ```python= passTime = 0 while True: score = int(input("輸入成績:")) if score >= 60: passTime +=1 if passTime == 3: print("及格三次") break ``` :::