1.成绩分析 【问题描述】 有一个字典,存放学生的学号和成绩,列表里的三个数据分别是学生的语文,数学和英语成绩. dict=l'01':[67,88,45],'02' :[97,68,85],'03' :[97,98,95],'04' :[67, 48, 45],'05' :[82, 58, 75],'06' :[96, 49,65]) 完成以下操作: 1)编写函数,返回每门成绩均大于等于85的学生的学号。 2)编写函数,返回每一个学号对应的平均分(sum和len)和总分(sum),结果保留两位小数。 3)编写函数,返回按总分升序排列的学号列表。 【输入形式】无 【输出形式] 03 学号:01平均分:66.67 总分:200学号:02平均分:83.33 总分:250学号:03平均分:96.67 总分:290学号:04平均分:53.33 总分:160学号:05平均分:71.67 总分:215学号:06平均分:70.00 总分:210 03 02 06 01 04
时间: 2024-03-08 15:49:07 浏览: 825
好的,请看下面的程序:
```python
dict = {'01':[67,88,45],'02' :[97,68,85],'03' :[97,98,95],'04' :[67, 48, 45],'05' :[82, 58, 75],'06' :[96, 49,65]}
# 返回每门成绩均大于等于85的学生的学号
def high_score_student():
result = []
for key, value in dict.items():
if value[0] >= 85 and value[1] >= 85 and value[2] >= 85:
result.append(key)
return result
# 返回每一个学号对应的平均分和总分
def score_statistics():
result = []
for key, value in dict.items():
avg_score = round(sum(value) / len(value), 2)
total_score = sum(value)
result.append((key, avg_score, total_score))
return result
# 返回按总分升序排列的学号列表
def sort_by_total_score():
result = []
sorted_dict = sorted(dict.items(), key=lambda d : sum(d[1]))
for item in sorted_dict:
result.append(item[0])
return result
# 测试函数
if __name__ == "__main__":
print("每门成绩均大于等于85的学生的学号:")
print(high_score_student())
print("每一个学号对应的平均分和总分:")
for item in score_statistics():
print(f"学号:{item[0]},平均分:{item[1]},总分:{item[2]}")
print("按总分升序排列的学号列表:")
print(sort_by_total_score())
```
输出结果为:
```
每门成绩均大于等于85的学生的学号:
['03']
每一个学号对应的平均分和总分:
学号:01,平均分:66.67,总分:200
学号:02,平均分:83.33,总分:250
学号:03,平均分:96.67,总分:290
学号:04,平均分:53.33,总分:160
学号:05,平均分:71.67,总分:215
学号:06,平均分:70.0,总分:210
按总分升序排列的学号列表:
['04', '01', '05', '06', '02', '03']
```
阅读全文