python计算平均成绩

【问题描述】

存储学生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] ))


img