Python for 與 while 迴圈

Python 迴圈(Python Loops)

這篇 Python 迴圈教學將帶你認識讓程式重複執行的兩種迴圈:for 用於「已知要跑幾次或逐一處理一串資料」,while 用於「條件成立就一直跑」。搭配 breakcontinue,幾乎所有重複性的工作都能交給迴圈處理。

for 迴圈與 range()

for 會把一串資料逐一取出處理。搭配 range() 可以指定次數:

寫法產生的數列
range(5)0, 1, 2, 3, 4(從 0 開始,不含 5)
range(1, 6)1, 2, 3, 4, 5(含起點,不含終點)
range(0, 10, 2)0, 2, 4, 6, 8(第三個參數是間隔)
for i in range(1, 6):
    print(f"第 {i} 次")

執行輸出:

第 1 次
第 2 次
第 3 次
第 4 次
第 5 次

for 也可以直接走訪字串(之後學了 List 會更常用):

for ch in "abc":
    print(ch)

執行輸出:

a
b
c

while 迴圈

while 在條件成立期間重複執行,適合「不知道要跑幾次」的情境:

count = 1
total = 0

while total < 100:
    total = total + count
    count = count + 1

print(f"加到 {count - 1} 時總和 {total},超過 100")

執行輸出:

加到 14 時總和 105,超過 100

使用 while 務必確認條件終究會變成 False(上例中 total 不斷變大),否則就是無限迴圈。

break 與 continue

關鍵字說明
break立刻跳出整個迴圈
continue跳過本輪剩餘程式碼,直接進入下一輪
for i in range(1, 10):
    if i % 2 == 0:
        continue          # 偶數跳過
    if i > 7:
        break             # 大於 7 結束迴圈
    print(i)

執行輸出:

1
3
5
7

while True 搭配 break 是常見寫法,用於「至少執行一次、由內部條件決定何時結束」:

while True:
    text = input("輸入指令(q 離開):")
    if text == "q":
        print("再見")
        break
    print(f"你輸入了:{text}")

執行範例:

輸入指令(q 離開):hello
你輸入了:hello
輸入指令(q 離開):q
再見

巢狀迴圈

迴圈裡再放迴圈,經典範例是九九乘法表(節錄 2~3 的部分):

for i in range(2, 4):
    for j in range(1, 10):
        print(f"{i}x{j}={i*j}", end="  ")
    print()

執行輸出:

2x1=2  2x2=4  2x3=6  2x4=8  2x5=10  2x6=12  2x7=14  2x8=16  2x9=18
3x1=3  3x2=6  3x3=9  3x4=12  3x5=15  3x6=18  3x7=21  3x8=24  3x9=27

常見錯誤

1. 無限迴圈(程式卡住不動)

while 的條件永遠為 True,常見原因是忘記在迴圈內更新條件變數。程式卡住時按 Ctrl + C 可以強制中斷。

2. range 差一錯誤(Off-by-one)

想跑 1 到 10 卻寫 range(1, 10),實際只到 9。記住口訣:含起點、不含終點,要到 10 就寫 range(1, 11)

3. break 只跳出一層

在巢狀迴圈中 break 只會結束「最內層」的迴圈,外層仍會繼續。需要整個跳出時,常用設旗標變數或把迴圈包進函式用 return

總結

for + range() 處理固定次數(含起點不含終點)、while 處理條件式重複、break 跳出、continue 跳過本輪。到這裡,Python 的核心語法(變數、運算、判斷、迴圈)都齊了,下一篇用一個小遊戲把它們全部串起來:終極密碼猜數字。

延伸閱讀