
基于已学习的数据容器完成如下需求# 案例 根据提供的学生成绩单完成如下需求 1. 计算每个学生的总分、各科平均分然后一并输出出来。 2. 统计各科成绩的最低分、最高分、平均分并输出。 3. 查找成绩优秀平均分大于90的学生并输出。 # 先存入学生信息如果是可变的用列表来存如果是不可变的用元组来存。这里是不可变的用元组来存。 students ( (S001, 王林, 85, 92, 78), (S002, 李慕婉, 92, 88, 95), (S003, 十三, 78, 85, 82), (S004, 曾牛, 88, 79, 91), (S005, 周轶, 95, 96, 89), (S006, 王卓, 76, 82, 77), (S007, 红蝶, 89, 91, 94), (S008, 徐立国, 75, 69, 82), (S009, 许木, 86, 89, 98), (S010, 通天, 66, 59, 72) ) # 小技巧shiftTab键可以将代码往顶格前移 # 1. 计算每个学生的总分、各科平均分然后一并输出出来。 # 从容器中循环拿出元素用for print(学号\t\t\t姓名\t\t\t语文\t\t数学\t\t英语\t\t总分\t\t平均分) for s in students: total s[2] s[3] s[4] avg total / 3 print(f{s[0]}\t\t\t{s[1]}\t\t\t{s[2]}\t\t\t{s[3]}\t\t\t{s[4]}\t\t\t{total}\t\t\t{avg:.1f}) # Ctrl Alt Shift J: 一次性选择文件中所有相同内容 print() # 2. 统计各科成绩的最低分、最高分、平均分并输出。 # 2.1 获取到各科的成绩列表 chinese_scores [s[2] for s in students] # 列表推导式就是按照一定规则快速生成一个列表的方法。格式1列表名称[要插入列表的数据 for i in 列表]格式2列表名称[要插入列表的数据 for i in 列表 if 条件] # print(chinese_scores) math_scores [s[3] for s in students] english_scores [s[4] for s in students] # 2.2 统计各科成绩的最低分、最高分、平均分并输出。 print(f语文最低分{min(chinese_scores)}最高分{max(chinese_scores)}平均分{sum(chinese_scores)/len(chinese_scores)}) print(f数学最低分{min(math_scores)}最高分{max(math_scores)}平均分{sum(math_scores)/len(math_scores)}) print(f英语最低分{min(english_scores)}最高分{max(english_scores)}平均分{sum(english_scores)/len(english_scores)}) print() # 3. 查找成绩优秀平均分大于90的学生并输出。 print(优秀学生平均分90名单如下) for s in students: total s[2] s[3] s[4] avg total / 3 if avg 90: print(f学号{s[0]}姓名{s[1]}平均分{avg:.1f})# 优化 students ( (S001, 王林, 85, 92, 78), (S002, 李慕婉, 92, 88, 95), (S003, 十三, 78, 85, 82), (S004, 曾牛, 88, 79, 91), (S005, 周轶, 95, 96, 89), (S006, 王卓, 76, 82, 77), (S007, 红蝶, 89, 91, 94), (S008, 徐立国, 75, 69, 82), (S009, 许木, 86, 89, 98), (S010, 通天, 66, 59, 72) ) # 1. 计算每个学生的总分、各科平均分然后一并输出出来。 # 从容器中循环拿出元素用for print(学号\t\t\t姓名\t\t\t语文\t\t数学\t\t英语\t\t总分\t\t平均分) for id, name, chinese, math, english in students: total chinese math english avg total / 3 print(f{id}\t\t\t{name}\t\t\t{chinese}\t\t\t{math}\t\t\t{english}\t\t\t{total}\t\t\t{avg:.1f}) print() # 3. 查找成绩优秀平均分大于90的学生并输出。 print(优秀学生平均分90名单如下) for id, name, chinese, math, english in students: total chinese math english avg total / 3 if avg 90: print(f学号{id}姓名{name}平均分{avg:.1f})D:\py_project_heima\.venv\Scripts\python.exe D:\py_project_heima\第二章\test.py 学号 姓名 语文 数学 英语 总分 平均分 S001 王林 85 92 78 255 85.0 S002 李慕婉 92 88 95 275 91.7 S003 十三 78 85 82 245 81.7 S004 曾牛 88 79 91 258 86.0 S005 周轶 95 96 89 280 93.3 S006 王卓 76 82 77 235 78.3 S007 红蝶 89 91 94 274 91.3 S008 徐立国 75 69 82 226 75.3 S009 许木 86 89 98 273 91.0 S010 通天 66 59 72 197 65.7 优秀学生平均分90名单如下 学号S002姓名李慕婉平均分91.7 学号S005姓名周轶平均分93.3 学号S007姓名红蝶平均分91.3 学号S009姓名许木平均分91.0声明本篇学习笔记参考黑马程序员相关课程部分素材来源于网络公开资料及本人补充文中为个人整理复盘仅供学习交流使用。