CH04 · 學習導覽

迴圈

for...in、while、range()、巢狀、break / continue
Python 程式設計 · 滄海二版 CH04 · 導覽(完整內容見 PDF 講義)
key idea · 招牌

兩種迴圈,選法看次數

for...in
走訪可迭代物件的每個元素;次數明確(跑幾次、走訪固定資料)時用。常搭 range()
while
條件為真就反覆;次數由結果決定(如猜到對為止)時用。須有改變條件的程式碼。

兩者都靠縮排界定主體、標題行尾要加冒號 :

flow · 執行流程

讀到/條件真 → 主體 → 回頭

讀元素 / 判條件 真 → 執行主體 ↺ 回頭

讀完 / 條件假 → 跳出迴圈執行後續。break 直接跳出;continue 跳過本回合回去判斷。

range · 控制次數

range():含頭不含尾

寫法產生
range(5)0 1 2 3 4(沒有 5)
range(2, 6)2 3 4 5
range(1, 10, 2)1 3 5 7 9(加梯級)
range(5, 1, -1)5 4 3 2(倒序用負梯級)

正梯級時起始須小於結束,否則空序列。

slice · 切片

物件[起始:結束:梯級]

s[1:4]
序號 1,2,3 → 'yth'(含頭不含尾)
s[-4:]
負序號:-1 是最後一個 → 'thon'
s[::2]
只給梯級 → 每隔一個 'Pto'
s[::-1]
梯級 -1 → 反轉 'nohtyP'
while · 無窮迴圈

while 一定要能停

正確
while i<5: ... i+=1 主體裡改變條件,跑完會停。
無窮迴圈
漏了 i+=1 → 條件永遠真、停不下來。

in / not in 也可當條件;刻意做無窮迴圈用 while True: 並以 break 設出口。

nested · 巢狀迴圈

外圈每回合,內圈跑一輪

外圈 i 每一格 → 內圈 j 整輪跑完 print() 換行

像時鐘分針(外圈)與秒針(內圈)。九九乘法表=外圈被乘數 × 內圈乘數;換行的 print() 屬外圈。

control · 流程控制

break vs continue

break
結束所在迴圈,直接跳到迴圈後的程式碼。
continue
跳過本回合剩餘程式碼,回去判斷下一回合;迴圈還在跑。

巢狀中兩者都只作用於自己所在那一層;要控制外圈得在外圈寫。

checklist · 考前掃描

最容易掉的點

  • range(5) 是 0~4、沒有 5;倒序要負梯級(range(5,1,-1))。
  • 切片含頭不含尾、序號從 0 起、-1 是末。
  • while 漏了改變條件 → 無窮迴圈。
  • 巢狀:外圈每回合內圈跑完一輪(會寫九九乘法表)。
  • break 結束迴圈、continue 跳過本回合;都只作用於所在那一層。
next · 學習閉環

接下來怎麼練

slides
導覽
PDF 講義
學細節
index
Pyodide 試跑
本地練習
自己寫
測驗卷
≥ 90%

寫任何迴圈:先想用 for 還是 while、range 邊界含不含尾、while 會不會停、break/continue 作用在哪一層。