☰
Python48-49:核心语法-数据容器-元组tuple-案例
2026/10/7 9:45:47 网站建设 项目流程

基于已学习的数据容器完成如下需求

# 案例 ''' 根据提供的学生成绩单,完成如下需求: 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) ) # 小技巧:shift+Tab键可以将代码往顶格前移 # 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

声明:本篇学习笔记参考黑马程序员相关课程,部分素材来源于网络公开资料及本人补充;文中为个人整理复盘,仅供学习交流使用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询