Python 清單與循環

進階

清單用方括號、索引由 0 開始;len/sum/max/append 是常用操作;for 逐個處理清單,while 按條件重複,小心無限循環。

適合:中二資訊及通訊科技 · 單元:演算法與程式 · 建議學習路徑第 5/12 課

學完呢課,你會識:
  • 清單用方括號 [ ],索引由 0 開始。
  • len、sum、max、min、append 是清單常用操作。
  • 平均分一行搞定:sum(清單) / len(清單)。
文體:編程教學課有聲朗讀

文體小知識:編程教學課每個概念都配一段可以親手試的代碼例子,照住輸入、改一改,最快學會。

資訊及通訊科技Information & Communication Technology

§課文原文 Passage

1清單(List)把多個資料放在一起,用方括號包住、逗號分隔,例如 scores = [80, 92, 75]。清單由 0 開始編號:scores[0] 是 80、scores[1] 是 92、scores[2] 是 75。這個「由 0 開始」的索引(Index)是初學者最容易搞錯的地方。

2清單有現成的操作:len(scores) 數長度、sum(scores) 求總和、max(scores) 找最大值、scores.append(60) 在尾端加入新項目。計三科平均分只需一行:sum(scores) / len(scores)。這些工具令處理一班人的分數變得輕而易舉。

3for 迴圈適合「逐個處理」清單:for s in scores: 會依次把 80、92、75 指定給 s,迴圈體(縮排的部分)每輪執行一次。while 迴圈則在條件成立時不停重複,例如 while total < 100: 繼續加數。用 while 時必須確保條件最終會不成立,否則就會變成停不下來的無限循環。

4實際應用:老師用清單存全班分數,for 迴圈逐個檢查是否及格;遊戲用 while 迴圈保持角色行走,直到生命值歸零。清單加循環,是程式處理大量資料的基本功,也是中二編程的核心技巧。

1重點摘要 Summary

清單用方括號、索引由 0 開始;len/sum/max/append 是常用操作;for 逐個處理清單,while 按條件重複,小心無限循環。

2生字卡 Vocabulary

L
List清單

把多個資料按順序放在一起的資料類型,用方括號表示,例如 [80, 92, 75]。

I
Index索引

清單中每個元素的編號,由 0 開始;scores[0] 是第一個元素。

E
Element元素

清單中的每一個項目,可以混放數字和文字。

a
append()加入元素

在清單尾端加入新元素的方法,例如 scores.append(60)。

l
len()長度函數

回傳清單中元素的數目,例如 len([10, 20, 30]) 是 3。

f
for loopfor 迴圈

逐個處理清單或固定次數重複的迴圈,例如 for s in scores:。

w
while loopwhile 迴圈

只要條件成立就重複執行的迴圈,例如 while total < 100:。

I
Infinite loop無限循環

條件永遠成立、停不下來的 while 迴圈,通常是忘了更新變數。

r
range()範圍函數

產生整數序列配合 for 使用,包頭不包尾:range(1, 6) 是 1 至 5。

3逐步講解 Steps

  1. 建立清單清單(List)把多個資料集中存放,寫法是用方括號包住、逗號分隔,例如 scores = [80, 92, 75]。執行 print(scores) 會顯示整個清單 [80, 92, 75]。清單可以混合不同類型的資料,例如 ['小明', 12, 'S1A'] 同時存放姓名、年齡與班別。生活應用:老師把全班分數存入一個清單,購物程式把貨品名稱存入清單,一個變數便管理大量資料,避免建立 scores1、scores2、scores3 這類混亂的變數名。
  2. 索引由 0 開始清單的編號(索引)由 0 開始:scores[0] 是 80,scores[1] 是 92,scores[2] 是 75。三個元素的清單,合法索引只有 0、1、2;若寫 scores[3],Python 會報 IndexError 錯誤,因為第 4 個位置並不存在。「由 0 開始」是初學者最容易出錯之處:直覺上第一個是 1 號,程式世界卻是 0 號。最後一個元素也可用 scores[-1] 存取,-1 代表倒數第一,-2 代表倒數第二,處理「取最後一項」特別方便。
  3. 常用內建操作清單配備現成工具:len(scores) 傳回長度 3;sum(scores) 求總和 247;max(scores) 找最大值 92;min(scores) 找最小值。scores.append(60) 在尾端加入新元素,清單變成 [80, 92, 75, 60],再查 len(scores) 得 4。這些操作組合起來威力強大:一行 average = sum(scores) / len(scores) 便能計算平均,三科或三十科都適用,程式完全不必修改,這正是程式相對人手計算的最大優勢。
  4. for 迴圈逐個處理for 迴圈適合逐個處理清單元素:for s in scores: print(s) 依次印出 80、92、75,變數 s 每輪輪流代表一個元素。縮排(行首空格)標示哪些語句屬於迴圈體:print(s) 有縮排,每輪執行一次;沒有縮排的語句只在迴圈結束後執行一次。縮排錯誤是初學常見問題:該縮排的不縮排,語句便只執行一次;不該縮排的卻縮排,程式會報 IndentationError,無法運行。
  5. for 配合 rangerange 讓 for 迴圈按數列重複:for i in range(1, 6): print(i) 印出 1, 2, 3, 4, 5,因為 range(1, 6) 包含起點 1 但不包含終點 6,即「包頭不包尾」。range(3) 由 0 開始,產生 0, 1, 2;range(2, 11, 2) 額外指定步長 2,產生 2, 4, 6, 8, 10。想印五次「練習完成」,可寫 for i in range(5): print("練習完成")。包頭不包尾的規則必須牢記:想印到 5,就要寫 range(1, 6)。
  6. while 按條件重複while 迴圈在條件成立時不停重複:n = 1 之後,while n <= 3: print(n) 與 n = n + 1 兩句配合,印出 1, 2, 3 後停止。若忘記寫 n = n + 1,n 永遠是 1,條件永遠成立,程式永不停歇,稱為無限循環,只能強制關閉。使用 while 的紀律是確保條件最終會不成立:循環體內必須有語句令條件走向終結。遊戲中「角色繼續行走直至生命值歸零」,便是典型的 while 應用場景。
  7. 清單與迴圈的綜合應用清單與迴圈配合是處理大量資料的基本功。例:全班分數 [70, 85, 90, 55],一行 for s in scores: 配合 if s >= 50: print("合格") 便能逐科判定是否及格;再以 sum(scores) / len(scores) 計算平均。此寫法的優勢是規模不變:四科變四十科,程式一字不改。老師統計成績、商店清點存貨、程式逐行讀取檔案,用的都是同一套「清單加迴圈」的組合,值得徹底熟練,成為條件反射。

4圖解 Diagrams

Python 清單與循環 Lists & loopsfruits = ["蘋果", "香蕉", "橙"]for f in fruits:print(f)輸出三行:蘋果 → 香蕉 → 橙(自動逐個拎出來)清單 list一個變數裝一堆嘢,用 [] 包住循環 for逐個處理清單,唔使逐個寫縮排 indentPython 靠縮排分層次,錯位就錯組合起嚟:一堆數據 + 一個循環 = 批量處理——程式嘅日常
圖 1:Python 清單與循環

5例題示範 Example

例題:寫程式計算 [70, 85, 90, 55] 四科分數的平均,並逐科印出是否及格(50 分或以上)。

  1. scores = [70, 85, 90, 55];總和 sum(scores) = 300。
  2. 平均 = 300 ÷ 4 = 75.0,用 sum(scores) / len(scores) 計算。
  3. for s in scores: 依次檢查 — 70 ≥ 50 合格、85 合格、90 合格、55 合格。
  4. 如果有科是 45,就會印「不合格」— 判斷寫在迴圈內,每個分數都會被檢查一次。
  5. 答案:平均 75.0;四科全部 ≥ 50,全部合格。核心寫法:for s in scores: if s >= 50: print(s, "合格")。

6常見錯誤 Mistakes

✗ 「scores[1] 是第一個元素。」
✓ 清單索引由 0 開始,scores[0] 才是第一個;scores[1] 是第二個。
✗ 「for 和 while 一樣,喜歡用哪個都可以。」
✓ 逐個處理清單用 for;不確定次數、按條件重複才用 while。
✗ 「while 迴圈不用理條件什麼時候變 False。」
✓ 條件若永不改變,就會變成無限循環;迴圈內必須有令條件最終不成立的語句。
✗ 「range(1, 5) 會產生 1, 2, 3, 4, 5。」
✓ range 包頭不包尾,range(1, 5) 只有 1, 2, 3, 4;要包含 5 要寫 range(1, 6)。
✗ 「append 會把新元素插在最前。」
✓ append 是加在尾端;要在指定位置插入用 insert(位置, 值)。

75 題快測 Quick check

Q1nums = [4, 8, 15],nums[0] 是多少?

Q2len([10, 20, 30, 40]) 的結果是什麼?

Q3scores = [60, 45];執行 scores.append(90) 之後,清單變成什麼?

Q4for i in range(3): print(i) 會印出什麼?

Q5以下哪句會造成無限循環?A. while n < 5: n = n + 1 B. while n < 5: print(n)(n 永遠是 3)

8重點回顧 Recap

  • 清單用方括號 [ ],索引由 0 開始。
  • len、sum、max、min、append 是清單常用操作。
  • 平均分一行搞定:sum(清單) / len(清單)。
  • for 適合逐個處理清單;range 包頭不包尾。
  • while 按條件重複,迴圈內必須有改變條件的語句,否則無限循環。

同級其他科

同一科其他級別