m0_68099463 2022-04-04 16:03 采纳率: 100%
浏览 102
已结题

Python编程如何解答以下?

运用字典和列表的知识,对一个学生成绩表进行简单操作。
要求:

  1. 课程数和课程名任意,从键盘接收,不少于三门课程
  2. 学生数和学生成绩从键盘接收,不少于5个学生。
    计算:
    (1) 增加一个列表,用来记录所有字典信息,键对(课程名’,‘平均分’,‘最高分’,‘最低分’}
    (2) 给每个学生增加一个['总分‘]键值对,并求总分
    (3) 按照总分对所有学生记录进行排序,并输出。要求模拟sort()函数,自己编写排序模块。
    用了sort() ,自写模块,
  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-04-04 17:00
    关注

    这样?

    img

    lst=[]
    kvCourse={'数学':{'total':0},
               '英语':{'total':0},
               '语文':{'total':0}
             }
    while True:
        name=input('输入学生名称(输入“退出”结束):')
        if name=="退出":
            break
        stu={}
        stu['姓名']=name
        total=0
        for k,item in kvCourse.items():
            value=int(input('输入%s成绩:'%k))
            stu[k]=value
            item['total']+=value
            if item.get('min')==None or item.get('min')>value:
                item['min']=value
            if item.get('max')==None or item.get('max')<value:
                item['max']=value
            total+=value
        stu['总分']=total
        lst.append(stu)
     
     
    def sort(arr):
        n = len(arr)
        for i in range(n):
            for j in range(0, n-i-1):
                if arr[j]['总分'] > arr[j+1]['总分'] :
                    arr[j], arr[j+1] = arr[j+1], arr[j]
     
    num=len(lst)###########
    for k,item in kvCourse.items():
        item['avg']=item['total']/num
     
    print(kvCourse)
    print('\n\n\n')
    sort(lst)
    print(lst)
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月10日
  • 已采纳回答 4月5日
  • 创建了问题 4月4日

悬赏问题

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