- 已知各科学分和考生成绩,计算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 randoma= random.randint(60,100) # 随机产生60-100的一个分
py练习题,求带佬带带
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- shadowsland 2021-11-16 18: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)
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 3无用
悬赏问题
- ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
- ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
- ¥20 C#上传XML格式数据
- ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
- ¥100 单片机hardfaulr
- ¥20 手机截图相片分辨率降低一半
- ¥50 求一段sql语句,遇到小难题了,可以50米解决
- ¥15 速求,对多种商品的购买力优化问题(用遗传算法、枚举法、粒子群算法、模拟退火算法等方法求解)
- ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
- ¥15 虚拟机检测,可以是封装好的DLL,可付费