这份练习涵盖整个 过渡到 Python 与代码运行 单元:把伪代码对应到 Python、缩进与分支、错误类型、安全运行环境和考试年份标注。题目由易到难,全部为原创。
先在纸上追踪每一题,再打开答案。之后可以用 Python 推理沙盒 和 受限伪代码追踪训练器 检查。错误记录与重测队列 很适合用来记下你做错的地方。
题目
1. 写出这两行的 Python 写法。
Total ← 0
Total ← Total + 5
查看答案
total = 0
total = total + 5
箭头 ← 变成 =。两行执行后,total 的值是 5。
2. 写出 IF Age >= 16 THEN OUTPUT "Senior" ENDIF 的 Python 写法。
查看答案
if age >= 16:
print("Senior")
条件以冒号结尾,print 这一行要缩进。引号里的文字保持不变。
3. 输出是什么?
def f(n):
total = 0
for i in range(1, n + 1):
total = total + i
return total
print(f(4))
查看答案
range(1, 5) 给出 1, 2, 3, 4。total 依次是 1, 3, 6, 10。输出:10。
4. 输出是什么?
for i in range(3):
print(i * 2)
查看答案
range(3) 给出 0, 1, 2,所以打印的数值是 0、2 和 4,分三行。输出:0, 2, 4。
5. 给出 band(70)、band(40) 和 band(39) 的结果。
def band(mark):
if mark >= 70:
return "High"
elif mark >= 40:
return "Middle"
else:
return "Low"
查看答案
70 >= 70 是 True,所以是 High。40 没通过第一个判断,但通过 >= 40,所以是 Middle。39 两个都没通过,所以是 Low。
6. 找出语法错误。
def double(x)
return x * 2
查看答案
def 这一行少了冒号。改正:def double(x):。在改正之前,Python 无法开始运行程序。
7. 这个函数应该给出两个数的平均值。average(4, 10) 返回什么?应该返回什么?这是哪一种错误?
def average(a, b):
return a + b / 2
查看答案
先做除法:10 / 2 = 5,然后 4 + 5 = 9.0。正确的平均值是 (4 + 10) / 2 = 7.0。这是逻辑错误,因为它能运行且没有任何信息。修正:return (a + b) / 2。
8. 输出是什么?如果把 count = count + 1 往回缩,与 if 对齐,输出又是什么?
count = 0
for n in [3, 8, 5, 10]:
if n > 4:
count = count + 1
print(count)
查看答案
按原样,8、5 和 10 大于 4,所以输出是 3。往回缩到 if 的层级后,这一行对每一项都会运行,所以输出变成 4。
9. 输出是什么?然后说明如果删掉 n = n * 2 这一行会发生什么。
n = 1
while n < 20:
n = n * 2
print(n)
查看答案
n 依次是 1, 2, 4, 8, 16, 32。到 32 时判断 32 < 20 是 False,所以输出是 32。删掉 n = n * 2 后,n 永远不变,判断一直是 True,循环永不结束。有时间限制的运行环境会把它停止。
10. 题目说 “write the algorithm in pseudocode”,而你平时用 Python 写代码。你应该写什么?要到哪里核对你所考年份期望的写法?
查看答案
写 Cambridge 风格的伪代码,因为题目就是这样要求的。到 Cambridge IGCSE Computer Science 0478 页面查看你自己所考年份的大纲,并询问考试中心你报考的是哪一份大纲。为其他年份写的建议,在核实之前都算未核实。
11. 这段代码在浏览器沙盒里无法运行。为什么?怎样修正这个练习?
marks = open("marks.txt").read()
查看答案
运行环境没有文件访问。把虚构的数据放进程序里:marks = [72, 45, 50, 38, 91]。你要测试的算法保持不变。
答错了怎么办
| 出错的地方 | 前往 |
|---|---|
翻译、range 的终点、= 与 ==(第 1 至 4 题) | 把算法对应成受限的 Python 函数 |
| 分支顺序、缩进、循环位置(第 5、8 题) | 测试缩进与分支结构 |
| 错误类型与错误结果(第 6、7 题) | 区分语法错误与错误结果 |
| 死循环、文件、沙盒限制(第 9、11 题) | 使用安全的浏览器运行环境 |
| 写法与考试年份(第 10 题) | 把 2029 年仅限 Python 的指引分开 |
想把一个出错的习惯变成可靠的习惯,可以看看我们的 线上一对一计算机科学补习。