Dark Terminetor 2022-08-18 19:09 采纳率: 84.2%
浏览 314
已结题

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成绩、数学成绩

输出为一行,分别是以空格分隔开的学生姓名、从高到低排序的各科成绩、平均成绩

  • 写回答

1条回答 默认 最新

  • a5156520 2022-08-18 19:37
    关注

    下面是一个实现,供参考:

    
    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月27日
  • 已采纳回答 8月19日
  • 创建了问题 8月18日

悬赏问题

  • ¥15 CARSIM前车变道设置
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败