[Python 基础课程]学生语文成绩录入和查询需求
编写一个 Python 程序,可以支持让用户录入学生的姓名和学习成绩,根据学生姓名查询语文成绩,查询已经录入的学生的语文成绩最高分,查询已经录入的学生的语文成绩最低分。
程序写好后,可以使用下面这些 demo 数据测试一下程序是否正确:
王明: 92
李华: 85
张丽: 95
陈宇: 78
赵敏: 89
刘伟: 91
孙婷: 83
周杰: 90
吴静: 88
郑毅: 79
答案
# grade_book 是一个字典,用于存储学生姓名和成绩
# 学生姓名作为 key,成绩作为 value
grade_book = {}# 打印欢迎信息
print("欢迎使用学生成绩管理系统!")# 无限循环,直到用户选择退出
while True:# 打印菜单print("\n请选择您要进行的操作:")print("1. 录入学生成绩")print("2. 查询学生成绩")print("3. 查询最高分")print("4. 查询最低分")print("5. 退出系统")# 获取用户输入choice = input("请输入选项(1-5):")if choice == '1':# --- 录入学生成绩功能 ---student_name = input("请输入学生姓名:")# 如果姓名已存在,询问用户是否更新if student_name in grade_book:print(f"学生 {student_name} 的成绩已存在,当前成绩为 {grade_book[student_name]}")overwrite = input("是否更新成绩?(y/n):").lower()if overwrite != 'y':print("取消更新。")continue# 循环直到输入有效的成绩while True:try:# 将输入的字符串转换为整数score = int(input("请输入语文成绩:"))# 将姓名和成绩存入字典grade_book[student_name] = scoreprint(f"学生 {student_name} 的成绩 {score} 已成功录入。")breakexcept ValueError:print("输入无效,成绩必须是数字。请重新输入。")elif choice == '2':# --- 查询学生成绩功能 ---student_name = input("请输入要查询的学生姓名:")# 检查学生姓名是否在字典中if student_name in grade_book:# 如果存在,打印成绩print(f"学生 {student_name} 的语文成绩为 {grade_book[student_name]}。")else:# 如果不存在,打印提示信息print(f"未找到学生 {student_name} 的成绩记录。")elif choice == '3':# --- 查询最高分功能 ---# 检查字典是否为空if not grade_book:print("当前没有学生成绩记录。")# 跳过本次循环的剩余部分,回到菜单continue# 使用 max() 函数找到字典值中的最高分max_score = max(grade_book.values())# 找到所有成绩是最高分的学生top_students = [name for name, score in grade_book.items() if score == max_score]print(f"最高分为 {max_score} 分。获得最高分的学生有:{'、'.join(top_students)}")elif choice == '4':# --- 查询最低分功能 ---# 检查字典是否为空if not grade_book:print("当前没有学生成绩记录。")# 跳过本次循环的剩余部分,回到菜单continue# 使用 min() 函数找到字典值中的最低分min_score = min(grade_book.values())# 找到所有成绩是最低分的学生low_students = [name for name, score in grade_book.items() if score == min_score]print(f"最低分为 {min_score} 分。获得最低分的学生有:{'、'.join(low_students)}")elif choice == '5':# --- 退出系统功能 ---print("感谢使用,再见!")breakelse:# --- 处理无效输入 ---print("输入无效,请输入一个介于1到5的数字。")