3.7知识点 · 课时
综合实战:自动批改助手
综合运用算法思维和 Python 三大结构,完成完整的「自动批改助手」。
终极挑战:完成自动批改助手
恭喜来到最后一关!前面 6 关我们一步步学会了:算法思维、流程图、Python 变量、顺序结构、选择结构、循环结构。
现在,把它们全部整合,完成一个真正能用的「自动批改助手」。
回顾:我们走过的路
| 关卡 | 学到了什么 | 项目进展 |
|---|---|---|
| 1 | 算法的概念 | 分析了「人工批改」的步骤 |
| 2 | 流程图和伪代码 | 画出了批改的算法 |
| 3 | 变量、列表、元组 | 用列表存答案 |
| 4 | 顺序结构 | 实现输入和输出 |
| 5 | 选择结构 | 能判断对错 |
| 6 | 循环结构 | 能批改多道题 |
完整版:自动批改助手 v1.0
# ===== 自动批改助手 v1.0 =====
# 功能:自动批改一张选择题试卷,输出每题对错和总分
# 1. 准备数据
standard_answers = ["A", "C", "B", "D", "A"]
points_per_question = 2
# 2. 输入学生答案(用循环逐题输入)
print("=== 自动批改助手 ===")
print(f"本试卷共 {len(standard_answers)} 道题,每题 {points_per_question} 分")
print()
student_answers = []
for i in range(len(standard_answers)):
answer = input(f"请输入第 {i+1} 题的答案(A/B/C/D):")
student_answers.append(answer)
# 3. 批改(循环 + 判断)
print()
print("=== 批改结果 ===")
total = 0
for i in range(len(standard_answers)):
if student_answers[i] == standard_answers[i]:
total = total + points_per_question
print(f"第 {i+1} 题:✅ 正确")
else:
print(f"第 {i+1} 题:❌ 错误(你的:{student_answers[i]},正确:{standard_answers[i]})")
# 4. 输出总分和统计
full_score = len(standard_answers) * points_per_question
print()
print(f"总分:{total} / {full_score}")
if total == full_score:
print("🎉 满分!太厉害了!")
elif total >= full_score * 0.6:
print("👍 及格了,继续加油!")
else:
print("💪 没及格,多练习哦!")
运行效果
=== 自动批改助手 ===
本试卷共 5 道题,每题 2 分
请输入第 1 题的答案(A/B/C/D):A
请输入第 2 题的答案(A/B/C/D):B
请输入第 3 题的答案(A/B/C/D):B
请输入第 4 题的答案(A/B/C/D):D
请输入第 5 题的答案(A/B/C/D):C
=== 批改结果 ===
第 1 题:✅ 正确
第 2 题:❌ 错误(你的:B,正确:C)
第 3 题:✅ 正确
第 4 题:✅ 正确
第 5 题:❌ 错误(你的:C,正确:A)
总分:6 / 10
👍 及格了,继续加油!
这个程序用到了哪些知识
| 知识点 | 在哪里用到 |
|---|---|
| 变量 | total、full_score 等 |
| 列表 | standard_answers、student_answers |
| len() | len(standard_answers) 获取题目数量 |
| append() | 逐题把学生答案加入列表 |
| 顺序结构 | 整体按"准备→输入→批改→输出"顺序执行 |
| 选择结构(if) | 判断每题对错、判断是否满分/及格 |
| 循环结构(for) | 逐题输入、逐题批改 |
| f-string | 格式化输出 |
| 累加 | total = total + points 统计总分 |
你还可以怎么扩展
这个程序还能做得更好,试着挑战:
- 支持多学生:把批改逻辑放到一个循环里,逐个学生输入并批改
- 统计错题:记录哪些题错的人最多(提示:用列表存每题的错误次数)
- 支持不同分值:用元组存每题的分值
(2, 3, 2, 3, 5),总分按实际计算 - 输出等级:90% 以上 A,80% 以上 B,60% 以上 C,否则 D
🎉 恭喜通关!
你完成了「算法与 Python 编程」全部 7 关!回顾一下你掌握的能力:
- ✅ 能分析问题、设计算法(算法思维)
- ✅ 能用流程图和伪代码描述算法
- ✅ 会 Python 基本语法(变量、数据类型、列表、元组)
- ✅ 能写顺序、选择、循环三种结构的程序
- ✅ 完成了一个真正能用的「自动批改助手」程序
这就是计算思维的核心——把一个真实问题,拆解成算法,再用编程实现。 从"人工批改 30 份试卷要 1 小时",到"程序 1 秒批完",这就是信息科技的力量。
🤔 思考
- 这个程序还有什么不足?如果要批改填空题,要怎么改?
- 如果试卷有 100 道题,你的程序需要改哪里?(答案:几乎不用改,改
standard_answers即可) - 你能用学到的知识,做一个别的工具吗?(如:计算器、密码生成器、猜数字游戏)
📝 本模块小结
7 关通关,你已掌握 Python 编程的基础能力。后续课程将进入数据处理与可视化(第五章)和人工智能(第六章),用 Python 处理更复杂的数据。
随堂练习
检验一下你对本节内容的理解
在「自动批改助手 v1.0」中,如果要批改的题目从 5 道变成 100 道,程序的核心批改逻辑(for 循环部分)需要修改吗?