Post

Python 基礎:迴圈介紹與使用

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:練習完成以下作業:
    1. 第 6 個作業:YouTube 線上課程 - 課堂作業 重複執行
    2. 第 7 個作業:YouTube 線上課程 - 課堂作業 巢狀迴圈+條件

加油!寫程式就是不斷試錯與成長的過程。有任何問題歡迎在下方留言!

This post is licensed under CC BY 4.0 by the author.

© homedad. Some rights reserved.

Using the Chirpy theme for Jekyll.