Skip to content

阶段验收:基础语法与数据处理 ​

学完数据类型、流程控制和数据容器后,先暂停学习新语法,独立完成一次阶段验收。

这次任务重点检查三件事:能不能把需求拆成步骤、能不能选对容器、能不能用判断和循环处理数据。当前还没有学习函数,因此不要求拆分函数。

阶段验收任务的处理流水线

验收任务 ​

学校收集了一组课程报名记录:

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},
]

请编写程序完成下面的处理:

  1. 删除完全重复的报名记录。
  2. 只保留 Python 课程的记录。
  3. 按成绩从高到低输出姓名和成绩。
  4. 统计及格人数与不及格人数,60 分及以上为及格。
  5. 计算 Python 课程的平均分,保留两位小数。

参考输出:

text
王五不是 Python 课程学员,已跳过
张三:86 分
赵六:73 分
李四:58 分
及格人数:2
不及格人数:1
平均分:72.33

输出文字可以不同,但数据必须正确。

完成要求 ​

  • 使用列表保存多条记录,使用字典表示一条记录。
  • 至少使用一次 for 循环和一次 if 判断。
  • 不直接修改题目给出的原始数据。
  • 程序可以重复运行,结果保持一致。
  • 能向别人说明每个容器分别保存了什么数据。

阶段验收中列表、字典和统计变量的职责关系图

卡住时按顺序检查

先去重,再筛选课程,最后排序和统计。一次只完成一个步骤,每完成一步就打印中间结果。

自测用例 ​

完成后,再用下面三种情况测试:

  1. 把所有成绩改成 60,及格人数应为 3。
  2. 删除所有 Python 课程记录,程序应能输出“暂无数据”,不能发生除零错误。
  3. 再增加一条与李四完全相同的记录,统计结果不应变化。

验收标准 ​

等级达成情况下一步
通过五项任务全部完成,三组自测结果正确进入综合案例
基本通过主流程能运行,但边界情况有一项失败回看循环控制和列表、字典操作
需要巩固无法独立完成筛选、统计或容器选择回看 p03、p04 并重做对应练习

验收的重点不是一次写对,而是能根据错误结果定位到具体步骤并完成修改。