阶段验收:基础语法与数据处理
学完数据类型、流程控制和数据容器后,先暂停学习新语法,独立完成一次阶段验收。
这次任务重点检查三件事:能不能把需求拆成步骤、能不能选对容器、能不能用判断和循环处理数据。当前还没有学习函数,因此不要求拆分函数。
验收任务
学校收集了一组课程报名记录:
python
registrations = [
{"name": "张三", "course": "Python", "score": 86},
{"name": "李四", "course": "Python", "score": 58},
{"name": "王五", "course": "Web", "score": 91},
{"name": "赵六", "course": "Python", "score": 73},
{"name": "张三", "course": "Python", "score": 86},
]请编写程序完成下面的处理:
- 删除完全重复的报名记录。
- 只保留
Python课程的记录。 - 按成绩从高到低输出姓名和成绩。
- 统计及格人数与不及格人数,
60分及以上为及格。 - 计算 Python 课程的平均分,保留两位小数。
参考输出:
text
王五不是 Python 课程学员,已跳过
张三:86 分
赵六:73 分
李四:58 分
及格人数:2
不及格人数:1
平均分:72.33输出文字可以不同,但数据必须正确。
完成要求
- 使用列表保存多条记录,使用字典表示一条记录。
- 至少使用一次
for循环和一次if判断。 - 不直接修改题目给出的原始数据。
- 程序可以重复运行,结果保持一致。
- 能向别人说明每个容器分别保存了什么数据。
卡住时按顺序检查
先去重,再筛选课程,最后排序和统计。一次只完成一个步骤,每完成一步就打印中间结果。
自测用例
完成后,再用下面三种情况测试:
- 把所有成绩改成
60,及格人数应为3。 - 删除所有 Python 课程记录,程序应能输出“暂无数据”,不能发生除零错误。
- 再增加一条与李四完全相同的记录,统计结果不应变化。
验收标准
| 等级 | 达成情况 | 下一步 |
|---|---|---|
| 通过 | 五项任务全部完成,三组自测结果正确 | 进入综合案例 |
| 基本通过 | 主流程能运行,但边界情况有一项失败 | 回看循环控制和列表、字典操作 |
| 需要巩固 | 无法独立完成筛选、统计或容器选择 | 回看 p03、p04 并重做对应练习 |
验收的重点不是一次写对,而是能根据错误结果定位到具体步骤并完成修改。