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日

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据