欢迎来到程序编写规范(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)(myScore 与 myscore 是不同的)。
有意义的名称:
务必使用有意义的标识符名称。除非是在进行非常简单的数学运算,否则请避免使用 x 或 y 这种单个字母。
坏习惯: 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): 使用注释来提供背景信息(标头:姓名、日期、描述;行内:逻辑解释)。
在你编写的每一个小程序中持续练习这些标准,它们终将成为你程序编写“笔迹”中自然的一部分!