存储学生张三成绩的字典结构如下: d=("nane”:张三”,“english :80,"python":90,"math :100) 请编写程序完成以下三个求: 1)请使用上述结构,输入5名学生的name 及english. python 和math三门课的成绩,并 存储到列表scores中; 2)计算每个同学的平均成绩,同时在字典中添加关键字"avg”用来表示平均成绩; 3)按照每个学生的平均成绩由到低排序,在控制台输出5个学生的相关信息,并写入 到文件socres.txt中。
时间: 2024-03-23 13:36:33 浏览: 57
请注意,您在第一行中的字典结构中有一个拼写错误,应该是"name"而不是"nane"。
下面是答案:
1) 请使用上述结构,输入5名学生的name及english, python和math三门课的成绩,并存储到列表scores中:
```
scores = []
for i in range(5):
name = input("请输入第{}个学生的姓名:".format(i+1))
english = int(input("请输入{}的英语成绩:".format(name)))
python = int(input("请输入{}的Python成绩:".format(name)))
math = int(input("请输入{}的数学成绩:".format(name)))
d = {"name": name, "english": english, "python": python, "math": math}
scores.append(d)
print(scores)
```
2) 计算每个同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩:
```
for d in scores:
avg = (d['english'] + d['python'] + d['math']) / 3
d['avg'] = avg
print(scores)
```
3) 按照每个学生的平均成绩由到低排序,在控制台输出5个学生的相关信息,并写入到文件scores.txt中:
```
# 按照平均成绩从高到低排序
scores.sort(key=lambda x: x['avg'], reverse=True)
# 在控制台输出相关信息
for d in scores:
print("姓名:{},英语成绩:{},Python成绩:{},数学成绩:{},平均成绩:{}".format(d['name'], d['english'], d['python'], d['math'], d['avg']))
# 写入文件scores.txt
with open('scores.txt', 'w') as f:
for d in scores:
f.write("姓名:{},英语成绩:{},Python成绩:{},数学成绩:{},平均成绩:{}\n".format(d['name'], d['english'], d['python'], d['math'], d['avg']))
```
以上代码实现了按照平均成绩从高到低排序,并在控制台输出相关信息和写入文件中。
阅读全文