伪代码和 Python 用不同的记法解决同一个问题,而题目期望哪一种,由你所考年份的大纲决定。不要只靠视频、同学笔记或针对其他年份的网站。请到剑桥页面,查看你科目代码的现行大纲。
本页说明如何在两者之间翻译、哪些差异会导致答错,以及该查证什么。你可以用安全的 Python 推理沙盒运行简短的原创练习,观察输出。
两者真正的区别是什么?
伪代码是写给人看的计划,没有电脑执行的固定语法,漏了冒号也不会“报错”。Python 是电脑要执行的语言,少一个冒号或缩进不对,程序就会停下。
因为伪代码是给读者看的,分数通常落在清晰的逻辑上:循环对不对、条件对不对、变量更新对不对。实践中的 Python 则看程序能否运行并得出正确结果。各自如何评分,请查看你所考年份的大纲。
怎样一步一步翻译一个循环?
- 先用日常语言写步骤:总和从零开始,把 1 到 5 每个数加进去,输出总和。
- 用大纲指引的格式写伪代码。
- 逐行翻译成 Python,检查循环范围和起始值。
- 用同样的输入手动追踪两个版本,再比较。
示例
任务:把整数 1 到 5 相加,并输出总和。
伪代码:
total ← 0
FOR i ← 1 TO 5
total ← total + i
NEXT i
OUTPUT total
Python:
total = 0
for i in range(1, 6):
total = total + i
print(total)
追踪:i 依次取 1、2、3、4、5,total 依次变成 1、3、6、10、15。两个版本都输出 15。
注意范围。伪代码的 FOR i ← 1 TO 5 包含 5。Python 的 range(1, 6) 在 6 之前停止,所以 5 被包含,只是因为结束值写了 6。
要留意的错误
有学生把伪代码的范围原样照搬,写成 range(1, 5)。
这个循环只取 i = 1、2、3、4,总和是 1 + 2 + 3 + 4 = 10,不是 15。程序没有任何报错,所以感觉是对的。答案恰好少了最后一个值。
改正的办法是用最小的情况手动追踪。运行之前先问:我的最后一个值用到了吗?
两种记法还有哪些不同?
| 概念 | 要留意什么 |
|---|---|
| 列表或数组的位置 | 有些伪代码指引从 1 开始,Python 列表从 0 开始 |
| 整数除法 | 伪代码常用 DIV 和 MOD,Python 用 // 和 % |
| 赋值与比较 | 伪代码可能用 ← 和 =,Python 用 = 和 == |
| 代码块结尾 | 伪代码用 NEXT、ENDIF 等词,Python 用缩进 |
具体关键字请看你自己的伪代码指引。
自我检查
- “把 2 到 6 相加”的 Python 循环怎么写?总和是多少?
显示答案
`for i in range(2, 7):` 取 2、3、4、5、6。总和是 2 + 3 + 4 + 5 + 6 = 20。- 伪代码是
FOR i ← 3 TO 6,循环体运行几次?
显示答案
i 取 3、4、5、6,所以循环体运行 4 次。- 17 DIV 5 和 17 MOD 5 各是多少?
显示答案
17 DIV 5 = 3(整数商),17 MOD 5 = 2(余数),因为 3 × 5 + 2 = 17。在 Python 中分别是 `17 // 5` 和 `17 % 5`。什么时候可以考虑一对一补习?
如果只是要学几个记法差异,自学通常就够了。当你的程序能跑却总是输出错误,或者会写代码却在追踪表和伪代码题上丢分,就值得考虑找老师。
老师可以根据你自己的答案,找出反复出现的习惯,并建立一套简短的做法。你可以阅读我们教这门课的方式:计算机科学补习页面、计算机科学学习指南,或试试修改代码前先设计边界测试。