歡迎來到程式編寫規範(Coding Standards)的世界!

在本章中,我們將學習如何編寫出不僅對電腦而言是「正確」,對人類而言更是「清晰易讀」的程式碼。你可以把寫程式想像成寫故事:即使語法完美無缺,如果內容雜亂無章、難以閱讀,也不會是一本好書。透過遵循程式編寫規範,你可以確保你的作品既專業,又容易除錯,且他人也能輕鬆理解。如果起初覺得這些「規則」很多,別擔心——只要多加練習,這些規範很快就會變成你的直覺習慣!

1. 縮排與空白 (Indentation and White Space)

空白 (White space) 指的是程式碼中任何「空」的部分,例如空行或運算子之間的空格。而縮排 (Indentation) 則是透過在行首使用空格,來表示該語句屬於哪一個程式「區塊」。

為什麼這很重要?

在許多程式語言中,縮排只是為了美觀;但在 Python(H2 Computing 所使用的語言)中,縮排是強制性的。它告訴電腦哪些程式行屬於一個 if-statement、一個 loop 或一個 function。除了規範要求外,適當的空白能讓你的程式碼「呼吸」,使你的眼睛掃描時更輕鬆。

如何運用:

1. 標準縮排: 每一層縮排請準確使用 4 個空格。
2. 邏輯間隔: 在程式碼的不同部分之間(例如兩個不同的函式之間)空一行。
3. 運算子的留白: 不要寫成 x=y+5,請寫成 x = y + 5。這樣閱讀起來舒服多了!

類比: 可以把縮排想像成清單中的「項目符號」。子項目會縮進主要項目下方,以表示它們之間的從屬關係。如果沒有這種縮排,所有內容就會變成一團混亂、令人困惑的文字堆。

快速複習:
- 縮排: 展示邏輯結構。
- 空白: 在視覺上區隔不同的概念。

2. 命名慣例 (Naming Conventions / Identifiers)

識別碼 (Identifier) 就是你為程式中的項目(如變數、函式或類別)所取的名稱。選擇好的名稱是一位優秀程式設計師最重要的習慣之一。

「官方」規則(參考教學大綱指引):

- 名稱必須以字母 (a-z, A-Z) 或底線 (_) 開頭。
- 後面可以接字母、數字或底線。
- 保留字 (Reserved words)(如 if, while, def)不能用作名稱。
- 名稱具有大小寫敏感性 (case-sensitive)myScoremyscore 是不同的)。

有意義的名稱:

務必使用有意義的識別碼名稱。除非是在進行非常簡單的數學運算,否則請避免使用 xy 這種單個字母。

壞習慣: a = 3.14 * r * r ('a' 代表什麼?)
好習慣: area = 3.14 * radius * radius (清楚多了!)

常見風格:

- snake_case: 單字全為小寫,並以底線連接(例如:student_name)。這是 Python 變數的標準風格。
- camelCase: 第一個字母小寫,後續每個單字的首字母大寫(例如:studentName)。

避免常見錯誤: 名稱不要取「太」長。the_variable_that_stores_the_user_first_name 雖然具描述性,但打字很累人!取名為 user_first_name 就剛剛好。

要點: 一個陌生人應該能透過讀你的變數名稱,就準確猜出你的程式在做什麼。

3. 編寫註解 (Writing Comments)

註解 (Comments) 是寫給人類看的筆記。當電腦執行你的程式時,會完全忽略任何標記為註解的內容。在 Python 中,我們使用 # 符號進行單行註解,使用三引號 (""") 進行 docstrings(多行文件註解)。

你的 H2 Computing 作業中應該包含什麼:

根據教學大綱 (1.3.3),你的程式通常應包含:

1. 程式標頭 (Program Header): 在檔案的最開頭,包含:
- 你的姓名 (Name of programmer)
- 編寫日期 (Date written)
- 簡短的 程式描述 (Program description)(這段程式碼到底在做什麼?)

2. 行內解釋 (Inline Explanations): 在複雜程式碼旁邊或上方加上簡短筆記,說明你為什麼要這樣做。

良好的標頭範例:

# Programmer: Alex Tan
# Date: 15 October 2023
# Description: 此程式用來計算班級學生的平均分數。

你知道嗎? 即使是最優秀的程式設計師,過幾週後也會忘記自己當初寫的程式碼是如何運作的。寫註解其實是給「未來的自己」一份禮物!

記憶小幫手(註解的三個 W):
- Who(誰寫的?)
- When(何時寫的?)
- What(它是做什麼的?)

總結與重點

程式編寫規範或許感覺像「額外的工作」,但在除錯時,它們能為你省下數小時的挫折感。請記住這三大支柱:

- 結構 (Structure): 使用 4 個空格的縮排空白來讓邏輯清晰明瞭。
- 清晰 (Clarity): 使用有意義的識別碼名稱,讓程式碼達到自我說明 (self-explanatory) 的效果。
- 溝通 (Communication): 使用註解來提供背景資訊(標頭:姓名、日期、描述;行內:邏輯解釋)。

在你編寫的每一個小程式中持續練習這些標準,它們終將成為你程式編寫「筆跡」中自然的一部分!