【问题描述】 存储学生Zhang成绩的字典结构如下: stu={"name":"Zhang","english":80,"python":90,"math":100} 1)请使用上述结构输入3个学生的name及english、python和math三门课的成绩并存储到列表scores中,如下所示: scores = [stu1,stu2,stu3] 2)计算每个同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩,平均成绩用函数round(avg,2)来保留两位小数; 3)按照每个学生的平均成绩由高到低排序输出3个学生的相关信息。 【样例输入】 Zhang 80 90 100 Li 70 73 80 Wang 85 83 60 【样例输出】 [{'name': 'Zhang', 'english': 80, 'python': 90, 'math': 100, 'avg': 90.0}, {'name': 'Wang', 'english': 85, 'python': 83, 'math': 60, 'avg': 76.0}, {'name': 'Li', 'english': 70, 'python': 73, 'math': 80, 'avg': 74.33}] 【样例说明】 输入为三行,分别是以空格分隔开的三个学生的姓名、英语成绩、python成绩、数学成绩 输出为一行,平均成绩降序排列的学生成绩列表
时间: 2023-12-26 17:03:38 浏览: 108
Python实现学生成绩管理系统
下面是Python代码实现:
```python
# 输入三个学生的成绩
stu1 = {"name": input("请输入第1个学生的姓名:"),
"english": int(input("请输入第1个学生的英语成绩:")),
"python": int(input("请输入第1个学生的Python成绩:")),
"math": int(input("请输入第1个学生的数学成绩:"))}
stu2 = {"name": input("请输入第2个学生的姓名:"),
"english": int(input("请输入第2个学生的英语成绩:")),
"python": int(input("请输入第2个学生的Python成绩:")),
"math": int(input("请输入第2个学生的数学成绩:"))}
stu3 = {"name": input("请输入第3个学生的姓名:"),
"english": int(input("请输入第3个学生的英语成绩:")),
"python": int(input("请输入第3个学生的Python成绩:")),
"math": int(input("请输入第3个学生的数学成绩:"))}
# 存储到列表scores中
scores = [stu1, stu2, stu3]
# 计算每个同学的平均成绩,并添加到字典中
for stu in scores:
avg = (stu["english"] + stu["python"] + stu["math"]) / 3
stu["avg"] = round(avg, 2)
# 按照平均成绩由高到低排序
scores = sorted(scores, key=lambda x: x["avg"], reverse=True)
# 输出学生成绩列表
print(scores)
```
运行结果:
```
请输入第1个学生的姓名:Zhang
请输入第1个学生的英语成绩:80
请输入第1个学生的Python成绩:90
请输入第1个学生的数学成绩:100
请输入第2个学生的姓名:Wang
请输入第2个学生的英语成绩:85
请输入第2个学生的Python成绩:83
请输入第2个学生的数学成绩:60
请输入第3个学生的姓名:Li
请输入第3个学生的英语成绩:70
请输入第3个学生的Python成绩:73
请输入第3个学生的数学成绩:80
[{'name': 'Zhang', 'english': 80, 'python': 90, 'math': 100, 'avg': 90.0}, {'name': 'Wang', 'english': 85, 'python': 83, 'math': 60, 'avg': 76.0}, {'name': 'Li', 'english': 70, 'python': 73, 'math': 80, 'avg': 74.33}]
```
阅读全文