存储学生张三成绩的字典结构如下: stu={“name”:"张三","englisth":80,"python":90,"math":100} (1)请使用上述结构输入5个学生的name及3门课的成绩并存储到列表scores中。 (2)计算每位同学的平均成绩,同时在字典中添加关键字“avg”用来表示平均成绩。 (3)按照每个学生的平均成绩由高到低排序输出5个学生的相关信息。 (4)遍历列表scores,将每门课不及格的学生名单进行打印。
时间: 2023-06-05 09:06:47 浏览: 2000
我明白了,下面是对您问题的回答:
(1) 输入五位学生的成绩:
```
scores = []
for i in range(5):
stu = {}
stu["name"] = input("请输入第{}个学生的姓名:".format(i+1))
stu["english"] = int(input("请输入英语成绩:"))
stu["python"] = int(input("请输入Python成绩:"))
stu["math"] = int(input("请输入数学成绩:"))
scores.append(stu)
```
(2) 计算每位同学的平均成绩,并在字典中添加关键字“avg”用来表示平均成绩。可以使用以下代码实现:
```
for stu in scores:
avg = (stu["english"] + stu["python"] + stu["math"]) / 3
stu["avg"] = avg
```
(3) 按照每个学生的平均成绩由高到低排序并输出学生信息,可以使用以下代码实现:
```
scores.sort(key=lambda x:x["avg"], reverse=True)
for stu in scores:
print("姓名:{},英语成绩:{},Python成绩:{},数学成绩:{},平均成绩:{:.2f}".
format(stu["name"],stu["english"],stu["python"],stu["math"],stu["avg"]))
```
(4) 遍历列表scores,将每门课不及格的学生名单进行打印,可以使用以下代码:
```
for stu in scores:
if stu["english"] < 60:
print("{}的英语不及格".format(stu["name"]))
if stu["python"] < 60:
print("{}的Python不及格".format(stu["name"]))
if stu["math"] < 60:
print("{}的数学不及格".format(stu["name"]))
```
希望以上回答能够解决您的问题,如果您还有其他问题,请随时提出。
阅读全文