跳到正文
IGCSE·Tuition
计算机科学 · 练习

过渡到 Python 与代码运行:综合练习

答案摆在眼前时翻译很容易,屏幕一空白就难了。

这份练习涵盖整个 过渡到 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 的指引分开

想把一个出错的习惯变成可靠的习惯,可以看看我们的 线上一对一计算机科学补习。

更新于:

下一步

如果同一类型的题目一再出错,一对一的老师可以看你的追踪过程,找出失误背后的习惯。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生