利用嵌套字典管理学生成绩 python |
您所在的位置:网站首页 › gpa保留小数点 › 利用嵌套字典管理学生成绩 python |
题目内容: 学生的成绩单结构为一个嵌套的字典 {学生id: {课程id: 课程得分, ...}, ...} 课程表为一个字典: {课程id: 课程学分, ...} 输入一个学生id请你输出该生已选修的课程学分绩,小数点后保留两位小数。公式为: (课程A得分*课程A学分 + 课程B得分*课程B学分 + ...) / [20* (课程A学分 + 课程B学分 + ...)] 注意:如果输入的学生id不存在则返回-1.00,如果学生没有选课,则学分绩GPA应该等于0.00. 输入格式: 按提示输入字符串 输出格式: 浮点数保留两位小数 输入样例: M2021 输出样例: 3.30 (解释:66*5 / [20*(5)] = 3.30) 时间限制:500ms内存限制:32000kb # 得分 scores = {'M1034': {'0001': 88, '0002': 85, '1002': 90, '2000': 92}, 'M2021': {'0001': 66}, 'M3014': {'0002': 85, '2000': 90, '0001': 85}, 'M1001': {'0001': 92, '3001': 95, '1002': 95, '0002': 88}, 'M3066': {}, } # 学分 course = {'0001': 5, '0002': 2, '1002': 4, '2000': 1, '3001': 2} def computeGPA(name): GPA=-1.00 scoreByName=scores.get(name,0) if scoreByName=={}: GPA=0.00 if scoreByName: sumOfScores=0 sumOfCourse=0 for score in scoreByName: xf=course.get(score,0) sumOfCourse+=xf sumOfScores+=xf*scoreByName[score] GPA=sumOfScores/(20*sumOfCourse) #保留小数点后两位round(x,2) return "%.2f" % GPA computeGPA('M3066')
|
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |