唼喋菁藻
后端开发
·2 天前
Day 10 🧭行动:对所学习的数据容器进行实战综合运用 🤓体会:做了一个简易教务管理系统,其中使用了马上要学习的函数相关知识,不使用的话可能会导致代码过于冗长,降低可读性。 🧑‍💻代码: # 初始化:外层字典 key=学生姓名,value=成绩字典 students = {} def subject_stat(subject_name, score_name_list): """统计科目:最高分、最低分、平均分、对应学生姓名""" scores = [item[0] for item in score_name_list] max_score = max(scores) min_score = min(scores) avg_score = sum(scores)/len(scores) max_names = [item[1] for item in score_name_list if item[0]==max_score] min_names = [item[1] for item in score_name_list if item[0]==min_score] print(f"{subject_name}:") print(f"\t最高分:{max_score},学生:{','.join(max_names)}") print(f"\t最低分:{min_score},学生:{','.join(min_names)}") print(f"\t平均分:{avg_score:.2f}") def stat_class(): """6.统计班级成绩""" if not students: print("暂无学生数据,无法统计!") return # 只这里用到 .items(),其余逻辑全部复用 chinese_list = [(val["chinese"], key) for key, val in students.items()] math_list = [(val["math"], key) for key, val in students.items()] english_list = [(val["english"], key) for key, val in students.items()] print("====班级成绩统计====") subject_stat("语文", chinese_list) subject_stat("数学", math_list) subject_stat("英语", english_list) # 主菜单 while True: print(""" ========教务管理系统======== 1.添加学生信息 2.修改学生信息 3.删除学生信息 4.查询学生信息 5.列出所有学生 6.统计班级成绩 7.退出系统 ============================""") op = input("请输入功能选项:") if op == "1": name = input("输入学生姓名:") if name in students: print("该学生已存在!") else: c = int(input("语文成绩:")) m = int(input("数学成绩:")) e = int(input("英语成绩:")) students[name] = {"chinese":c,"math":m,"english":e} print("添加成功") elif op == "2": name = input("输入要修改的学生姓名:") if name in students: students[name]["chinese"] = int(input("输入新语文成绩:")) students[name]["math"] = int(input("输入新数学成绩:")) students[name]["english"] = int(input("输入新英语成绩:")) print("修改完成") else: print("没有该学生") elif op == "3": name = input("输入要删除的学生姓名:") if name in students: del students[name] print("删除成功") else: print("没有该学生") elif op == "4": name = input("输入查询学生姓名:") if name in students: s = students[name] print(f"姓名:{name} 语文:{s['chinese']} 数学:{s['math']} 英语:{s['english']}") else: print("查无此人") elif op == "5": if not students: print("暂无学生") for name,score in students.items(): print(f"姓名:{name} 语文:{score['chinese']} 数学:{score['math']} 英语:{score['english']}") elif op == "6": stat_class() elif op == "7": print("系统退出") break else: print("输入选项无效,请重新输入!")
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP