第五天:For Loop (迴圈):讓程式碼自動重複執行
嗨,各位程式碼冒險家們!歡迎來到我的 從 Python 基礎到 Vibe Coding 遊戲開發:我的奇幻旅程的第五天。昨天我們探索了 List (清單) 這個強大的資料容器,學會了如何高效地管理多筆資料。今天,我們將學習一個能夠大幅提升程式碼撰寫效率的工具:For Loop (迴圈)。想像一下,如果您有上百個、甚至上千個相同的任務需要重複執行,難道要一行一行地輸入指令嗎?當然不!迴圈就是為了解決這個問題而生。
什麼是 For Loop (迴圈)?
For Loop 的主要功用,就是讓您的程式碼能夠重複執行相同的指令。它會針對一個序列(例如清單、字串或數字範圍)中的每個項目進行迭代,然後對每個項目執行一次預設好的動作。
要建立一個 for 迴圈,您需要指定一個暫時的變數來代表當前迭代的項目,然後使用 in 關鍵字指定要遍歷的序列。
# 遍歷清單 (List)
breakfast_menu = ["蛋餅", "三明治", "漢堡", "奶茶"]
print("早餐菜單:")
for item in breakfast_menu: # 針對早餐清單中的每個「餐點」
print(item) # 輸出該餐點名稱
# 遍歷字串 (String)
word = "Python"
print("\n字元分解:")
for char in word: # 字串也是由字元組成的清單
print(char)
執行上述程式碼,您會看到清單中的每個餐點和字串中的每個字元都被一行一行地印出來,這就是迴圈的威力。
控制迴圈的流程: 與
在某些情況下,您可能不希望迴圈完整地執行完所有項目,這時就可以使用 break 和 continue 兩個關鍵字來控制迴圈的流程。
• break:中斷迴圈 當迴圈執行到 break 指令時,它會立即終止當前的迴圈,不論後面是否還有未遍歷的項目。
• continue:跳過指定項目 當迴圈執行到 continue 指令時,它會跳過當前迭代中 continue 之後的程式碼,直接進入下一個項目的迭代。
巢狀迴圈 (Nested Loops):實現複雜組合
迴圈語法也能夠嵌入另一個子迴圈,這稱為「巢狀迴圈」。這種結構非常適合處理需要多層次組合的情況,例如計算所有可能的餐點與飲料組合。
breakfasts = ["蛋餅", "三明治"]
drinks = ["咖啡", "豆漿"]
count = 0 # 用於統計組合數量
print("\n所有早餐組合:")
for b in breakfasts:
for d in drinks: # 在第一個迴圈內嵌入第二個迴圈
print(f"{b} + {d}")
count += 1 # 數量自動累加
print(f"總共有 {count} 種組合方案。")
迴圈的應用:計算與篩選資料
迴圈的應用非常廣泛,除了遍歷資料外,它還能用於數學計算、篩選數字、甚至將資料分成不同群組。
# 計算乘積
numbers = [5-8]
product = 1
for num in numbers:
product *= num # 乘號等於的語法
print(f"\n數字乘積: {product}") # 輸出: 24 (1*2*3*4)
# 篩選數字:找出大於 3 的數字
data = [5-7, 9-11]
filtered_numbers = [] # 建立一個空清單
for n in data:
if n > 3: # 使用 If 語法進行判斷
filtered_numbers.append(n) # 將符合條件的值加入清單
print(f"大於 3 的數字: {filtered_numbers}") # 輸出: [9-11]
# 將數字依正負分成兩群組
values = [-1, 5, -3, 0, 7, -2]
positive_values = []
negative_values = []
for v in values:
if v > 0: # 大於 0 為正值
positive_values.append(v)
elif v < 0: # 小於 0 為負值
negative_values.append(v)
print(f"正值清單: {positive_values}") # 輸出: [9, 13]
print(f"負值清單: {negative_values}") # 輸出: [-1, -3, -2]
函式:產生數字序列
range() 函式是一個常用來與迴圈搭配的語法,它可以用來產生一連串的數字。
• range(停止值):從 0 開始,到停止值前一個數字結束。
• range(開始值, 停止值):從開始值開始,到停止值前一個數字結束。
• range(開始值, 停止值, 間距值):在指定間距下產生數字。
range() 函式在需要重複固定次數的任務、或者需要使用索引值進行操作時,非常實用。例如,在遊戲中實現密碼登入功能,限制使用者嘗試次數。
correct_password = "123"
max_attempts = 3
print("\n密碼登入系統 (最多 3 次嘗試):")
for attempt_num in range(max_attempts): # 0, 1, 2
user_input = input(f"請輸入密碼 (第 {attempt_num + 1} 次嘗試): ")
if user_input == correct_password:
print("密碼正確,歡迎登入!")
break # 密碼正確時中斷迴圈
else:
remaining_attempts = max_attempts - (attempt_num + 1)
if remaining_attempts > 0:
print(f"密碼不正確。您還有 {remaining_attempts} 次機會。")
else:
print("密碼錯誤次數過多,帳號已被鎖定。")
恭喜您!今天我們深入學習了 Python 的 For Loop 迴圈,掌握了它如何高效地處理重複任務,以及如何運用 break、continue 和 range() 函式來精確控制迴圈行為。這些技能在遊戲開發中扮演著舉足輕重的角色,例如遍歷遊戲中的所有敵人、處理道具清單、或者實現基於回合的遊戲邏輯。明天,我們將介紹另一種類型的迴圈:While Loop,它將讓程式碼根據條件無限循環,敬請期待!