/tutor-prep-s5-ict-programming-python-basics/
/tutor-prep-s5-ict-programming-python-basics/
一般查詢: info@TutorZone.com.hk
辦公時間: 星期一至六 - 上午 9 時至下午 6 時
WhatsApp 星期一至日 - 24 小時
人手接聽: +852 6828 1809
即時客服: +852 9061 3106

DSE ICT|Python 程式基礎:十節備課指引(變數、迴圈、函數、除錯)

DSE ICT|Python 程式基礎:十節備課指引(變數、迴圈、函數、除錯)

  • 2026-11-05

學生看得明範例,但一開新檔就寫不出來,因為他們把程式當成「要背的語法」而不是「一步步的指令」。本課只做一件事:用 1 至 10 求和這條題,把變數、迴圈、函數三層依次加上去,令學生同一題由三行寫到十行,並且每次改動都能講出原因。

本堂目標 學生能夠:(1) 用變數儲存並更新一個累加值,講出每一行執行後變數的值;(2) 用 for 迴圈配合 range 完成重複運算,並正確設定起點與終點;(3) 把重複邏輯包成函數,傳入參數並取回結果,並用一個測試值驗證。

01 先備知識(開課前 3 分鐘快檢)

以下任何一項未過關,本堂就會卡住,先補該項:

技能 快檢題 過關標準
輸入輸出 print 與 input 分別做甚麼? 輸出到螢幕/由鍵盤取字串
資料類型 input 取回的數字為何要轉換? input 回傳字串,要 int() 轉整數
縮排 Python 用甚麼表示同一組指令? 縮排,通常是四個空格

02 課堂流程(45 分鐘)

時間 環節 導師做什麼 學生做什麼
0-6 分鐘 先讀一段錯的程式 投影一段跑錯的求和程式,叫學生找錯 學生指出至少一個錯處
6-14 分鐘 變數是一格一格的盒 用 total = total + i 逐格示範,寫出每輪的值 學生手寫三輪的 total 值
14-24 分鐘 for 與 range 講 range(1, 11) 為何是 1 到 10,起點包含、終點不包含 學生改寫成 1 至 100 並核對 5050
24-32 分鐘 包成函數 def total_to(n) 加 return,強調 return 與 print 的分別 學生把求和包成函數並呼叫一次
32-40 分鐘 測試與除錯 用 1、10、100 三個輸入測試,其中一個故意失敗 學生找出失敗的那個並修正
40-45 分鐘 離場檢查 收回三題,只讀答案 獨立作答

03 講解腳本(照著說就可以)

第一幕:由一段錯的程式開場

不要由語法開始。投影一段五行的求和程式,裡面有三個錯:total 未初始化、range 寫成 range(1, 10)、縮排少一格。叫學生兩人一組找錯,再把他們的發現寫回黑板。
這樣做的目的是令學生知道:程式設計大部分時間是找錯,而不是由零開始寫。找錯能力一旦建立,他們就不再怕空白檔案。

學生做:找出三個錯處,並講出每個錯會導致甚麼後果。

第二幕:變數:一格一格的盒

在黑板上畫一個方格寫 total,然後逐輪更新:第 1 輪 total 由 0 變 1,第 2 輪由 1 變 3,第 3 輪由 3 變 6。要求學生自己寫出第 10 輪的結果,答案是 55。
學生最常犯的錯是把 total = total + i 讀成數學等式。要講清楚:右邊先算,再放回左邊的格。這個「先算後放」的講法,比講 assignment operator 有效得多。

學生做:填一張十行表,寫出每輪 i 與 total 的值。

第三幕:for 與 range:起點包含、終點不包含

range(1, 11) 產生 1 到 10 十個數,這是學生最容易失分的地方,因為他們會寫 range(1, 10) 而少了 10。用一行 print(list(range(1, 11))) 即場示範,把 10 個數印出來,比任何解釋都清楚。
接着把題目由 1 至 10 改成 1 至 100,答案 5050,讓學生自己按一次。同一條題目換一個數,學生就知道公式不是重點,流程才是。

學生做:改寫成 1 至 100,並解釋為何要寫 101。

第四幕:包成函數:參數入、結果出

把求和邏輯包成 def total_to(n),裡面用 range(1, n + 1),最後 return total。要強調兩點:n + 1 是因為終點不包含;return 是把結果交出去,不是印出來。
示範 print(total_to(10)) 與 x = total_to(10) 的分別:後者可以再運算,前者只是顯示。學生明白這一點之後,寫後面的題目就不會把函數寫成一大段 print。

學生做:把函數改寫成可計算 1 至 n,並用 n = 10 驗證得到 55。

第五幕:測試與除錯:故意讓它失敗

給三個測試值:1、10、100,答案應該是 1、55、5050。然後把函數改成 range(1, n) 再跑一次,n = 10 會得到 45,正好少了 10。叫學生找出差額並解釋原因。
這個「故意失敗」的做法,令學生看見測試的價值:如果只測 n = 1,錯的程式也會通過。這一節通常是整堂最安靜、最專注的十分鐘。

學生做:找出 45 與 55 的差,並用一句話寫出原因。

04 必教題型與步驟

題型 例子 步驟 答案
填空 給程式缺一行,補上正確語句 先想資料流,再想語法 縮排與變數名都正確
追蹤 給程式與輸入,寫出輸出 逐行寫變數值,不要心算 每一行都寫,包括沒變的
改錯 程式中有一個邏輯錯 先用小輸入測,再定位 指出行號與原因
撰寫 由題目描述寫一個函數 定義輸入、處理、輸出三段 有 return,有測試值
合理性檢查(一定要教):合理性檢查:(1) 1 至 10 的和是 55,1 至 100 是 5050,這兩個數要背下來當檢查點;(2) 若程式跑出 45,即是少加了一次,通常是 range 終點寫錯;(3) 若跑出無限次輸出,即是迴圈變數沒有更新;(4) 若出現 TypeError,先查 input 是否未轉 int;(5) 每個函數至少要用兩個不同輸入測過,才算完成。

05 獨立練習三題

題目 答案 想觀察什麼
追蹤 寫出 1 至 10 求和程式每輪的 total 核對第 1、2、10 輪
改錯 把 range(1, 10) 改成正確版本並解釋 核對是否講出終點不包含
撰寫 寫 total_to(n) 並用 n = 100 驗證 核對回傳 5050

06 學生常見錯誤與糾正句

錯誤 學生通常這樣寫 導師這樣說
total 未初始化 直接寫 total = total + i 「total 第一輪仲未存在,你要先俾佢一個 0。」
range 終點寫錯 寫 range(1, 10) 少了 10 「你嗰個答案少咗 10,range 終點唔包,所以要寫 11。」
print 當 return 函數裡只有 print,外層取不到值 「print 係顯示,return 係交貨,你要邊樣?」
縮排不一致 同一組指令一半四格一半兩格 「呢兩行睇落一樣,但 Python 當佢哋唔同組,對齊佢。」

07 家課建議(直接指到練習卷題號)

08 離場檢查(最後 5 分鐘)

題目 答案 判定
變數更新 先算右邊,再放左邊 講不出就重做第二節
range 邊界 起點包含、終點不包含 邊界錯就重做第三節
return 與 print return 交結果,print 只顯示 混淆就重做第四節

09 導師常問

要背語法嗎?

不用背全部,只需記住賦值、for、def、return 四種句式的樣子。

用哪個版本?

Python 3 寫法即可,考試不要求特定版本,但 input 一定要轉型。

寫不出來怎樣辦?

先用中文寫三個步驟:輸入、處理、輸出,再逐句翻成程式。

立即免費搵導師導師登記 →

本頁為 TutorZone 導師備課指引,內容由 TutorZone 團隊編寫;題目與流程為原創,並非任何學校或出版社的教材。

招募導師及興趣班教練|學術、樂器、體育、藝術、STEM,免費登記,招生與配對交給平台。 了解詳情 →