Python 列表與解難

使用 Python 列表(list)及 for 循環處理數據,並訓練解難能力。

5.1 列表

列表概念重溫與基礎小測

本部分先重溫 Python 中「列表(list)」的基本概念,提供可執行的示範程式,最後有 3 題小測題目。 小測題目會由題庫中隨機抽出,並可以按「下一題」換另一條題目。

什麼是列表(list)?

在 Python 中,列表(list) 是一種可以按照順序儲存多個值的資料結構,例如一班同學的分數、名字等。

  • [ ](方括號)包住整個列表。
  • 元素之間用逗號分隔,例如 [60, 75, 88]
  • 可以儲存不同類型的資料(整數、字串……),甚至可以混合。
  • 列表中的順序有意義,可以透過「索引」(index)按位置讀取或修改元素。

例如:

scores = [60, 75, 88] names = ["Amy", "Ben", "Chris"] mixed = ["Amy", 80, True]

一些常用操作

  • 讀取元素:scores[0](第一個元素,索引從 0 開始)。
  • 修改元素:scores[1] = 90(把第二個元素改為 90)。
  • 長度(元素個數):len(scores)
  • 在尾部加入新元素:scores.append(100)

重點摘要:以下內容補充列表的核心概念,並整理本單元最常用的 4 個常用的程式(加總、點算、檢索、找最大值)。

  • 掌握 索引從 0 開始len()append() 的用途。
  • 理解何時必須用 for i in range(len(list))(需要索引才能更新/比較)。
  • 避免常見錯誤:越界、少做/多做一格(off-by-one)、忘記初始化變量。

列表示範程式(由題庫載入,可修改後按「Run 程式」)

示範程式已放在 ../data/dch5/list-demos.json,本頁會自動載入並生成編輯器。


列表基礎概念小測

完成以下 3 題。每題會由題庫中隨機抽出題目,答完如想再練習,可以按「下一題」換另一條。

Q1. 建立列表(選 A / B / C / D)
請按「下一題」開始
Q2. 列表索引(輸入數值)
請按「下一題」開始
提示:Python 的索引從 0 開始;第一個元素的索引是 0。
Q3. True / False(選 正確 / 錯誤)
請按「下一題」開始

5.1 列表基本練習

以下練習會利用 Python 編譯器及自動批改,重點練習 for i in range(...) 和列表操作。 每題下方均提供輸入/輸出示例。

重點摘要:以下 9 題屬於「示範」練習。建議你先記熟每題對應的例子,再對照題目要求的變量名稱與輸出格式。

  • 加總 / 平均:先累加 total,再視乎需要計算 average
  • 點算 / 檢索 / 最大值:在循環內用 if 更新變量。
  • 調項(插入 / 刪除):重點在「由尾向前搬」或「由前向後搬」,避免覆蓋資料。

5.2 字串:從子串中提取所需字符

本部分主要練習利用索引或切片,從一條字串中抽取需要的部分,例如從電郵地址抽出用戶名稱。 同樣提供 Python 編輯器及自動批改功能。

重點摘要:本部分重點是「索引」與「切片(slice)」。

  • 切片語法:s[start:end]end 不包含)。
  • 負索引:-1 代表最後一個字元,s[-4:] 可取最後 4 個字元。
  • 遇到分隔符(例如 @-)時,先找位置再切片。

5.3 綜合解難:10 條 Python 題

以下 10 題會綜合運用:加總、平均、比較、計數、線性檢索、更新列表、字串處理 等技巧。 部分題目會要求使用指定變量名稱(例如 pass_counthighest), 系統的隱藏測試個案會讀取這些變量來評分。

⚠️ 題目指明的變量名稱請照樣使用,否則系統將無法讀取,並當作答錯處理。

每題下方都有「輸入與輸出示例」,以及一個「顯示提示」按鈕,協助學生按步驟完成解題。

重點摘要:綜合題最重要的是:先弄清楚「要更新的變量」與「要輸出的結果」,再把它們放入正確的循環模板。

  • 同一個 for 循環可以同時做多件事(例如:加總 + 點算 + 找最大)。
  • 需要「首次達成」或「找到就停」時,使用旗標(flag)或 break
  • 涉及兩個列表時,通常用 for i in range(len(list)) 同步處理 listA[i]listB[i]