m0_53614403 2021-11-16 09:55 采纳率: 50%
浏览 133
已结题

py练习题,求带佬带带

  1. 已知各科学分和考生成绩,计算GPA:
    学分={‘高数’:5,‘制图’:3.5,‘英语’:4,‘Python’:1.5}
    Ai={‘高数’:80,‘制图’:92,‘英语’:80,‘Python’:95}
    Ai 等表示某个学生的考试成绩,组成的字典。
    (1)用构造函数的方式,随机产生1个学生的四门成绩,返回值为字典Ai形式。
    (2)利用(1)中的函数,随机产生10个学生的四门成绩,用嵌套列表或嵌套字典的方式进行存储;如Tab=[[“学生1”,A1],[“学生2”,A2],….[“学生10”,A10]];或Tab={“学生1”:A1,“学生2”:A2],….“学生10”:A10}。
    【使用for循环逐一添加元素Ai】
    (3)构造加权平均成绩的函数= 每科(学分*成绩)之和/总学分
    【 函数名:ave_4 ,变量输入为学生成绩组成的字典Ai】
    (4)采用循环加分支结构,输出加权平均成绩大于80分的学生。
    (5)按加权平均成绩从高到底排序,输出排名榜单。
    注:
    随机函数 import random
           a= random.randint(60,100)  # 随机产生60-100的一个分
    
  • 写回答

2条回答 默认 最新

  • shadowsland 2021-11-16 10:31
    关注
    import random
    
    CreditsList = {'高数': 5, '制图': 3.5, '英语': 4, 'Python': 1.5}
    
    class Credits:
        def __init__(self):
            self.sredits = {'高数': random.randint(60, 100),
                       '制图': random.randint(60, 100),
                       '英语': random.randint(60, 100),
                       'Python': random.randint(60, 100)}
    
    
    def ave_4(data):
        totalCredits = sum(CreditsList.values())
        total = 0
        for k, v in data.sredits.items():
            total += v*CreditsList[k]
        return total/totalCredits
    
    
    students = []
    for i in range(10):
        name = '学生'+str(i)
        data = Credits()
        print(name, data.sredits)
        students.append([name, data])
    
    # 输出加权平均成绩大于80分的学生
    for student in students:
        if ave_4(student[1]) > 80:
            print(student[0])
            
    #按加权平均成绩从高到底排序,输出排名榜单
    for student in students:
        student.append(ave_4(student[1]))   # 将加权平均成绩添加到学生信息列表中
    students_sort = [i[0] for i in sorted(students, key=lambda x: x[2])]    # 按照成绩排序每组数据的第3个,然后取每组数据的第一个
    print(students_sort)
    
    

    展开全部

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月16日
  • 已采纳回答 11月16日
  • 创建了问题 11月16日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部