📌 第 3 小時:迴圈(for, while)
在程式設計中,迴圈(Loop) 可以讓我們 重複執行相同的程式碼,直到滿足條件為止。Python 提供兩種常見的迴圈:
for
迴圈:適用於已知執行次數的情境,例如重複執行 10 次。while
迴圈:適用於不確定執行次數,但依據條件決定是否繼續執行的情境。
🔹 for 迴圈
當我們知道確切執行次數時,可以使用 for
迴圈。
範例:重複執行 5 次
for i in range(1, 6):
print(f"第 {i} 次")
📌 range(start, stop, step)
用來產生一個數字序列
range(1, 6)
產生數字 1, 2, 3, 4, 5(stop
參數不包含在內)range(n)
會產生 0 到 n-1range(start, stop, step)
可設定步長
範例:跳過偶數
for i in range(1, 10, 2): # 1 到 9,間隔 2
print(i, end=" ") # 輸出:1 3 5 7 9
🟢 for 迴圈搭配列表
Python for
迴圈可直接遍歷 列表(list):
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
📌 for
迴圈適用於列表(List)、字串(String)、字典(Dictionary)等可迭代物件
🔹 while 迴圈
當我們不知道執行次數,而是根據條件決定是否繼續執行時,應該使用 while
迴圈。
範例:從 5 倒數到 1
n = 5
while n > 0:
print(f"倒數: {n}")
n -= 1 # 每次減少 1
📌 while
迴圈的執行條件
- 先判斷條件是否為
True
- 若條件為
True
,則執行迴圈內的程式碼 - 若條件為
False
,則終止迴圈
範例:讓使用者一直輸入,直到輸入 "exit" 為止
user_input = ""
while user_input != "exit":
user_input = input("請輸入文字(輸入 'exit' 離開):")
print(f"你輸入了:{user_input}")
print("程式結束")
📌 適用場景
while
迴圈適合用於 持續等待某個條件發生,例如:- 等待用戶輸入正確的數據
- 等待特定事件發生(如計時器、網路請求)
- 無限迴圈(直到手動終止)
🔹 break 與 continue
Python 提供 break
和 continue
來控制迴圈的執行:
break
:直接跳出迴圈(不再執行後續迴圈)continue
:跳過本次迴圈,繼續執行下一次迴圈
🟢 使用 break
提前結束迴圈
for i in range(1, 10):
if i == 5:
print("提早結束迴圈")
break # 當 i == 5,直接跳出迴圈
print(i)
📌 執行結果
1
2
3
4
提早結束迴圈
🟢 使用 continue
跳過本次迴圈
for i in range(1, 6):
if i == 3:
print("跳過 3")
continue # 跳過 3,不執行 print(i)
print(i)
📌 執行結果
1
2
跳過 3
4
5
🔹 continue
會跳過當前迴圈的剩餘部分,直接進入下一次迴圈。
🔹 else
搭配 for
或 while
Python 允許在 for
或 while
迴圈後加上 else
:
for i in range(1, 4):
print(i)
else:
print("迴圈正常結束")
📌 else
只會在迴圈「正常結束」時執行,若有 break
,則 else
不會執行。
範例:檢查數字是否為質數
num = 7
for i in range(2, num):
if num % i == 0:
print(f"{num} 不是質數")
break
else:
print(f"{num} 是質數")
🔹 巢狀迴圈(Nested Loops)
Python 允許 for
或 while
迴圈**巢狀(nested)**使用:
for i in range(1, 3): # 外層迴圈
for j in range(1, 4): # 內層迴圈
print(f"i={i}, j={j}")
📌 巢狀迴圈的時間複雜度較高,避免過度使用!
範例:輸出九九乘法表
for i in range(1, 10):
for j in range(1, 10):
print(f"{i} × {j} = {i*j}", end="\t")
print() # 換行
🔹 無窮迴圈(Infinite Loop)
如果 while
條件永遠不會變成 False
,則會形成 無窮迴圈:
while True: # 這樣的寫法會導致無窮迴圈
print("這是一個無窮迴圈,請使用 Ctrl + C 停止執行")
🔹 無窮迴圈的常見用途
- 遊戲主迴圈(直到玩家選擇結束)
- 伺服器永遠監聽請求
- 等待用戶輸入
📌 避免無窮迴圈,應在適當時機使用 break
退出!
範例:讓使用者輸入數字,直到輸入 0 為止
while True:
num = int(input("請輸入數字(輸入 0 結束):"))
if num == 0:
print("程式結束")
break
print(f"你輸入了 {num}")
📌 第 3 小時小結
✅ Python 提供 for
和 while
兩種迴圈
✅ for
迴圈適用於 確定執行次數
✅ while
迴圈適用於 不確定執行次數
✅ break
提前結束迴圈,continue
跳過當前迴圈
✅ else
可與迴圈搭配,當迴圈正常結束時執行
✅ 巢狀迴圈適用於輸出表格或九九乘法表
✅ 避免無窮迴圈,需設計適當的終止條件
至此,你已掌握 Python 條件判斷與迴圈,下一步將學習 函式與模組,讓程式碼更有結構與可重複使用性!🚀
沒有留言:
張貼留言