Python 基礎:迴圈介紹與使用
Python 基礎:迴圈介紹與使用
大家好,我是歐巴計概!歡迎來到 Python 基礎教學 系列。
你是否曾經想過,如果要讓電腦幫你重複做一件事 1000 次,難道要手動複製貼上 1000 行程式碼嗎?這時候,「迴圈(Loop)」就是你的超級救星!
迴圈應用在程式設計中無處不在,從自動化處理 Excel 報表、分析百萬筆大數據,到遊戲中不斷更新的畫面,背後都離不開迴圈。今天我們就來深入了解 Python 中最強大的兩個工具:For 迴圈 與 While 迴圈,並透過實際範例帶你一步步精通巢狀迴圈的邏輯。
1. 迴圈的基本概念
在 Python 中,迴圈主要分為兩大類,針對不同的使用場景:
- 計數迴圈 (For Loop):當你知道確切要執行幾次時使用。它會根據指定的開始值、結束值和間隔值來決定執行的次數。
- 條件迴圈 (While Loop):當你不知道要執行幾次,只知道「什麼情況下要繼續做」時使用。它會基於特定條件持續執行,直到條件不成立為止。
2. 計數迴圈(For 迴圈)的使用
這是最常見的迴圈形式,通常搭配 range() 函數使用。
範例程式碼:印出 5 次 Hello World
1
2
for i in range(5):
print("Hello World")
執行結果:
1
2
3
4
5
Hello World
Hello World
Hello World
Hello World
Hello World
2.1 Range 函數的細節與陷阱
range() 是 Python 產生數字序列的好幫手,但初學者常會在這裡跌倒。
- 歐巴小撇步 (Tips):
range(n)的意思是「從 0 開始,數 n 個數字」。- 關鍵記憶點:含頭不含尾。
range(5)會產生0, 1, 2, 3, 4,不會包含 5! - 結束值永遠是
n-1。
2.2 自定義範圍
除了預設從 0 開始,你也可以指定起點。
1
2
3
# 範圍為:0, 1, 2
for i in range(3):
print(i)
3. 實戰演練:計算 2 的 5 次方
為什麼要學迴圈?因為它可以幫我們進行重複的數學運算。計算 $2^5$ ($2 \times 2 \times 2 \times 2 \times 2$) 就是一個經典的迴圈應用。
範例程式碼:
1
2
3
4
5
result = 1
# 執行 5 次,每次都把 result 乘以 2
for i in range(5):
result = result * 2
print("2 的 5 次方結果為:", result)
執行結果:
1
2 的 5 次方結果為: 32
邏輯解析:初始值設為 1,迴圈每跑一次就乘一次 2,跑完 5 次後就得到了 $2^5$。
4. 實戰演練:5 階層計算 (Factorial)
階層 (Factorial) 在統計學與排列組合中非常重要。5 階層 ($5!$) 的定義是 $1 \times 2 \times 3 \times 4 \times 5$。我們可以透過調整 range() 的參數來達成。
範例程式碼:
1
2
3
4
5
result = 1
# range(1, 6) 代表從 1 開始,到 5 結束 (6 不包含)
for i in range(1, 6):
result = result * i
print("5 階層結果為:", result)
執行結果:
1
5 階層結果為: 120
5. 條件迴圈(While 迴圈)的使用
While 迴圈 就像是一個守門員,只要條件符合(True),它就會讓你一直做下去,直到條件不符合(False)為止。
範例程式碼:用 While 計算 $2^5$
1
2
3
4
5
6
result = 1
i = 1
while i < 6: # 當 i 小於 6 時,繼續執行
result = result * 2
i += 1 # 關鍵:每次執行後,計數器要加 1
print(result)
執行結果:
1
32
⚠️ 常見錯誤警告:無限迴圈 (Infinite Loop)
在使用 While 迴圈時,千萬別忘了更新你的條件變數(如上面的 i += 1)。如果你忘了加這一行,i 永遠是 1,條件永遠小於 6,程式就會陷入「死循環」,直到你的電腦當機或強制關閉程式。
6. 進階挑戰:巢狀迴圈 (Nested Loops) 與星星繪製
巢狀迴圈就是「迴圈裡面還有一個迴圈」。這對初學者來說比較抽象,我們用「畫星星」來理解:
- 外層迴圈 (Outer Loop):控制有幾「列」(直的看,換行幾次)。
- 內層迴圈 (Inner Loop):控制每一列有幾顆「星星」(橫的看)。
6.1 繪製 3x5 矩形星星
1
2
3
4
5
6
# 外層:決定印 3 列
for _ in range(3):
# 內層:每一列印 5 顆星星
for _ in range(5):
print("*", end="") # end="" 讓星星印在同一行,不要自動換行
print() # 內層跑完一輪後,換行
執行結果:
1
2
3
*****
*****
*****
6.2 繪製 倒三角形星星
這個例子比較進階,內層迴圈的次數會隨著外層迴圈改變。
1
2
3
4
5
6
7
rows = 3
# 外層 j 依序為 0, 1, 2
for j in range(rows):
# 內層次數為 3-0=3, 3-1=2, 3-2=1
for star in range(rows - j):
print("*", end="")
print() # 換行
執行結果:
1
2
3
***
**
*
邏輯解析:
- 第 1 圈 (j=0):印
3-0= 3 顆星- 第 2 圈 (j=1):印
3-1= 2 顆星- 第 3 圈 (j=2):印
3-2= 1 顆星
這份教學涵蓋了 Python 迴圈的基本概念與實作範例,並詳細介紹了如何使用 for 與 while 迴圈進行各種計算與簡易星星繪製。希望能幫助學習者熟悉迴圈的使用及其應用。
7. 換你動手做做看囉
看懂了不代表會寫,程式設計最重要的是動手實作!快來挑戰看看:
- 步驟 1:連到解題網:http://163.30.43.15/
- 步驟 2:註冊帳號且登入,加入課程。
- 課程代碼:
SzNTKb(若已註冊過就不需再註冊)
- 課程代碼:
- 步驟 3:練習完成以下作業:
- 第 6 個作業:YouTube 線上課程 - 課堂作業 重複執行
- 第 7 個作業:YouTube 線上課程 - 課堂作業 巢狀迴圈+條件
加油!寫程式就是不斷試錯與成長的過程。有任何問題歡迎在下方留言!