Python 迴圈練習:覆蓋大多數初學者問題的 5 個模式
大多數初學者迴圈題,都是五個基本模式的變體。先認出模式,再寫語法,比面對空白編輯器硬想更快。
模式 1:存取每個元素
當你需要每個值、不關心位置時,用 for item in items。變數名應該描述元素本身。可以列印它、轉換它,或傳給函式。
orders = ["拿鐵", "摩卡", "茶"]
for order in orders:
print(order)走訪
模式 2:重複固定次數
range(stop) 產生 0 到 stop - 1。range(start, stop) 可以指定起點。range(start, stop, step) 按步長跳過。想看具體值時,把 range 轉成 list。
print(list(range(3)))
print(list(range(2, 6)))
print(list(range(0, 6, 2)))三種 range 寫法
模式 3:累加一個總數
在迴圈前建立累加器,在迴圈中更新,迴圈結束後使用。這個模式適用於求和、計數或收集結果。最常見的錯誤是把累加器初始化放在迴圈裡面。
prices = [4.5, 6.0, 3.25]
total = 0
for price in prices:
total += price
print(total)累加
模式 4 和 5:篩選與建構
篩選只保留部分元素;建構把結果收集起來。兩者都在迴圈裡使用 if 或 append。先把普通迴圈寫對,再考慮用推導式縮短。
prices = [4.5, 6.0, 3.25]
expensive = []
for price in prices:
if price >= 4:
expensive.append(price)
print(expensive)篩選到新列表
迴圈偵錯清單
迴圈不符合預期時,按順序檢查四件事:初始值、縮進、邊界和更新。在迴圈前後各列印一次累加器。結果一直是 0,可能是迴圈體沒執行;增長太快,可能是更新多執行了一次。
total = 0
for n in range(1, 4):
total += n
print("迴圈內", n, total)
print("迴圈後", total)追蹤累加器
你的練習清單
- 寫語法前先說出這是哪個模式。
- 累加器在迴圈之前初始化。
- 檢查 range 邊界:stop 不包含。
- 屬於迴圈的每一行都要縮進。
常見問題
為什麼迴圈只列印了最後一個值?
print 可能寫在迴圈外面,或者結果變數被反覆覆蓋而不是累加。檢查縮進和初始值。
什麼時候用 while?
不知道要重複多少次時用 while,例如一直讀取直到輸入合法。走訪集合或已知範圍時,for 通常更清楚。
一定要用列表推導式嗎?
不需要。先把迴圈寫對。只有迴圈足夠簡單、推導式一眼能讀懂時,才考慮縮短。
練習迴圈
12 道迴圈題,附答案和解釋。
繼續閱讀: