m0_58528656 2021-05-23 09:20 采纳率: 100%
浏览 194
已结题

有人会python程序设计吗?回帖有奖

已知存储学生成绩信息的字典结构如下: stu = {"name":"杨一","english":85,"python":90,"math":92}。编写要求: (1)请使用上述结构输入n个学生的name,及 english,python,math三门课程的成绩并存放于列表中。 (2)n为由用户输入大于0的整数,name为字符串类型,english、python、math位数值型类型 (3)计算每位同学的平均成绩,同时在字典列表中添加平均成绩(保留小数1位)的信息,输出所有学生的成绩信息 (4)按平均分从高到低输出学生姓名和平均分

  • 写回答

1条回答 默认 最新

  • 冷寒越 2021-05-23 23:18
    关注
    while True:
        n = int(input("您想输入学生信息个数:"))
        if n > 0:
            break
        else:
            print("学生个数必须为正整数,请重新输入!")
    
    stu_list = []
    
    for i in range(n):
        print("请输入第%d个学生信息:" % (i+1))
        stu_name = input("请输入学生姓名:")
        engl_scor = eval(input("请输入%s的英语成绩:" % stu_name))
        python_scor = eval(input("请输入%s的python成绩:"% stu_name))
        math_scor = eval(input("请输入%s的数学成绩:"% stu_name))
        stu = {"name":stu_name,"english":engl_scor,"python":python_scor,"math":math_scor}
        scor_avg = (stu["english"]+stu["python"]+stu["math"])/3
        stu["平均成绩"] = round(scor_avg, 1)
        stu_list.append(stu)
    
    print("录入学生信息如下:")
    
    mat = "{:^15}\t{:^15}\t{:^15}\t{:^15}\t{:^15}"               # 输出格式
    print(mat.format("姓名", "英语成绩", "python成绩", "数学成绩", "平均成绩"))
    for student in stu_list:
        print(mat.format(student["name"], student["english"], student["python"], student["math"], student["平均成绩"]))
    
    scor_sorted = sorted(stu_list, key = lambda i: i['平均成绩'], reverse = True)
    mat1 = "{:^15}\t{:^15}"                            # 输出格式
    print("按平均成绩排序如下:")
    print(mat1.format("姓名", "平均成绩"))
    for j in scor_sorted:
        print(mat1.format(j["name"], j["平均成绩"]))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入