【问题描述】
存储学生Zhang成绩的字典结构如下:
stu={"name":"Zhang","english":80,"python":90,"math":100}
1)请使用上述结构输入学生的name及english、python和math三门课的成绩并存储到字典stu中(不考虑空数据的情况);
2)计算该同学的平均成绩,同时在字典中添加关键字"avg"用来表示平均成绩;
3)由高到低排序该学生的各科成绩;
4)输出该学生的姓名,各科成绩(保留两位小数)和平均成绩(保留两位小数)。
【样例输入】
Zhang 80 90 100
【样例输出】
Zhang 100.00 90.00 80.00 90.00
【样例说明】
输入为一行,分别是以空格分隔开的学生姓名、英语成绩、python成绩、数学成绩
输出为一行,分别是以空格分隔开的学生姓名、从高到低排序的各科成绩、平均成绩
下面是一个实现,供参考:
stu={}
msg = input("请输入该学生的信息:")
#https://m.py.cn/faq/python/22312.html 把输入按空格分割成列表
msg = msg.split(" ")
#取出成绩放入列表进行从大到小的排序
score=[int(msg[1]),int(msg[2]),int(msg[3])]
score = sorted(score,reverse=True)
#依此从列表中取出数据放到学生字典相应的键中,平均值键avg用三门功课的成绩的平均值作为值
stu["name"]=msg[0]
stu["english"]=int(msg[1])
stu["python"]=int(msg[2])
stu["math"]=int(msg[3])
stu["avg"]= (stu["english"]+stu["python"]+stu["math"])/3
#把结果按题目要求放入列表
result = []
result.append(stu["name"])
result.append(score[0])
result.append(score[1])
result.append(score[2])
result.append(stu["avg"])
#格式化打印结果列表的值
#https://blog.csdn.net/weixin_39880666/article/details/110040805
print("%s %.2f %.2f %.2f %.2f" % (result[0] ,result[1] , result[2] ,result[3] , result[4] ))