透過生成式AI提升Python程式閱讀力

教學指南 — 陳會安 & AI 協同生成

前言:為什麼程式閱讀能力更重要?

在AI輔助開發的時代,程式設計的核心能力已經轉變:

關鍵概念:只有看懂程式,才能發現問題、驗證邏輯、提出精確的修改需求。

因為你懂需求, AI會寫程式, 如何指揮AI寫程式, 取決於你的程式閱讀力。

學習路徑:從閱讀到精通

第一階段:建立閱讀框架(1-2週)

1. 先問「這段程式在做什麼?」

拿到任何Python程式時,先用AI幫助你建立整體理解:

實戰練習:

Python
def calculate_average(numbers):
    total = sum(numbers)
    count = len(numbers)
    return total / count

scores = [85, 92, 78, 90, 88]
result = calculate_average(scores)
print(f"平均分數: {result}")

向AI提問的方式:

學習重點:建立「功能→資料→流程」的閱讀思維。

2. 逐行拆解理解

選擇3-5行的小片段,深入理解每一行:

實戰練習:

Python
data = [x ** 2 for x in range(10) if x % 2 == 0]

向AI提問的方式:

學習重點:從簡化版本理解複雜語法,掌握語法糖的本質。

3. 識別程式結構

學習辨認常見的程式模式:

常見結構清單:

實戰練習:

Python
def find_max(numbers):
    if not numbers:
        return None
    
    max_value = numbers[0]
    for num in numbers[1:]:
        if num > max_value:
            max_value = num
    
    return max_value

向AI提問的方式:


第二階段:深化理解能力(2-4週)

4. 追蹤變數變化

理解程式就是理解資料如何變化:

實戰練習:

Python
nums = [3, 1, 4, 1, 5]
for i in range(len(nums)):
    nums[i] = nums[i] * 2
print(nums)

向AI提問的方式:

學習技巧:養成「腦內執行」的習慣,預測結果後再驗證。

5. 理解函數互動

現實程式常包含多個函數協作:

實戰練習:

Python
def clean_text(text):
    return text.strip().lower()

def count_words(text):
    cleaned = clean_text(text)
    words = cleaned.split()
    return len(words)

sentence = "  Hello World  "
result = count_words(sentence)

向AI提問的方式:

6. 識別常見陷阱

學習發現程式中的潛在問題:

實戰練習:

Python
def divide_numbers(a, b):
    return a / b

result = divide_numbers(10, 0)

向AI提問的方式:

常見陷阱類型:


第三階段:實戰應用(持續進行)

7. 閱讀完整專案

從簡單專案開始,建立系統性閱讀能力:

專案範例:簡易待辦事項管理

Python
tasks = []

def add_task(task):
    tasks.append({"name": task, "done": False})
    print(f"已新增: {task}")

def complete_task(index):
    if 0 <= index < len(tasks):
        tasks[index]["done"] = True
        print(f"已完成: {tasks[index]['name']}")

def show_tasks():
    for i, task in enumerate(tasks):
        status = "✓" if task["done"] else "○"
        print(f"{i}. [{status}] {task['name']}")

向AI提問的方式:

8. 對比不同實作方式

理解同一功能的多種寫法:

任務:找出串列中的偶數

向AI提問的方式:

學習重點:沒有絕對最好的寫法,要看具體情境(效能、可讀性、簡潔性)。

9. 偵錯練習

故意引入錯誤,練習發現問題:

實戰練習:

Python
def calculate_discount(price, discount):
    final_price = price - price * discount
    return final_price

# 想要打8折(20% off),但結果不對
result = calculate_discount(100, 20)
print(result)  # 期望80,實際得到-1900

向AI提問的方式:


與AI協作的最佳實踐

提問技巧進階

層次性提問法

  1. 概觀層:「這段程式的主要功能是什麼?」
  2. 結構層:「這段程式用了哪些控制結構?」
  3. 細節層:「第5行的enumerate是做什麼的?」
  4. 變化層:「如果輸入是空串列會怎樣?」

具象化請求


驗證理解的方法

1. 自我測試清單

看完程式後,問自己:

2. 教學法驗證

嘗試向AI說明:

3. 變形練習


實戰練習計畫(6週)

Week 1: 基礎語法閱讀

  • 每天閱讀5-10行的簡單程式
  • 重點:變數、運算、print、基本資料型態
  • 練習:用AI解釋每個語法元素

Week 2: 控制流程

  • 閱讀包含if-else、for、while的程式
  • 重點:理解程式執行路徑
  • 練習:畫流程圖,預測執行結果

Week 3: 函數與模組化

  • 閱讀多函數協作的程式
  • 重點:參數傳遞、回傳值、作用域
  • 練習:追蹤函數呼叫鏈

Week 4: 資料結構

  • 閱讀使用list、dict、set的程式
  • 重點:資料組織方式與存取
  • 練習:畫出資料結構示意圖

Week 5: 綜合應用

  • 閱讀50-100行的完整小專案
  • 重點:整體架構理解
  • 練習:寫功能說明文件

Week 6: 偵錯與改進

  • 閱讀有問題的程式並找出bug
  • 重點:批判性思維
  • 練習:提出改進建議並與AI討論

常見問題與解答

Q1: 看不懂程式時,第一步該做什麼?

A: 不要逐字理解,先問AI:「請用日常語言說明這段程式在做什麼」,建立概念框架後再深入細節。

Q2: 如何知道自己真的看懂了?

A: 試著用自己的話重新實作類似功能,或向AI描述你的理解請它驗證。

Q3: 遇到不認識的函數或語法怎麼辦?

A: 直接問AI:「enumerate是什麼?請舉例說明」,並要求AI展示2-3個使用範例。

Q4: 應該花多少時間在閱讀程式上?

A: 初期建議每天30-60分鐘,重質不重量。深入理解一段程式比匆匆看過十段程式更有效。

Q5: 如何建立閱讀程式的直覺?

A: 持續練習+反思。每次閱讀後問:「這段程式用了什麼模式?我以前見過嗎?」


進階技能:與AI高效協作

場景1:需求澄清

當你看懂AI寫的程式,發現不符需求時:

低效對話:

高效對話:

關鍵:精準指出程式邏輯與需求的差異。


場景2:效能優化

當你理解程式邏輯,想改進效能時:

低效對話:

高效對話:

關鍵:指出瓶頸位置並提出優化方向。


場景3:擴充功能

當你理解現有架構,要新增功能時:

低效對話:

高效對話:

關鍵:說明如何整合進現有架構。


總結:閱讀力就是你的超能力

在AI輔助開發的時代:

✅ 會看程式 → 能理解AI的產出 → 能指出問題 → 能獲得正確結果
❌ 不會看程式 → 只能盲目接受 → 發現錯誤但無法描述 → 陷入無效溝通
記住:你不需要成為比AI更強的程式寫手,但你需要成為程式的「品質檢查員」和「需求翻譯者」。
立即行動:找一段5-10行的Python程式,用本指南的方法向AI提問,開始你的閱讀力訓練!

附錄:快速參考

閱讀程式的黃金問題清單

  1. 這段程式的輸入和輸出是什麼?
  2. 程式分成幾個主要步驟?
  3. 哪一行是關鍵邏輯?
  4. 有沒有特殊情況需要處理?
  5. 如果輸入改變,程式會如何反應?
  6. 有沒有可能出錯的地方?
  7. 這樣寫有什麼優點和缺點?
  8. 能用更簡單的方式達成同樣效果嗎?

向AI提問的句型模板