描述
平均绩点计算方法:(课程学分1绩点+课程学分2绩点+课程学分n*绩点)/(课程学分1+课程学分2+课程学分n)
用户循环输入五分制成绩和课程学分,输入‘-1’时结束输入,计算学生平均绩点。等级与绩点对应关系如下表:
成绩       等级       绩点
90-100    A         4.0
85-89      A-        3.7
82-84      B+       3.3
78-81      B         3.0
75-77      B-        2.7
72-74      C+       2.3
68-71      C         2.0
64-67      C-        1.5
60-63      D         1.3
补考60     D-        1.0
60以下     F          0
输入格式
每组输入包括两行, 第一行是五分制的分数, 第二行是一个代表学分的数字
输出格式
输入输出示例
A3B3A2-1
输出:3.62
构建一个字典存储五分制成绩与绩点:
score = {'A':4.0,'A-':3.7,'B+':3.3,'B':3.0,'B-':2.7,'C+':2.3,'C':2.0,'C-':1.5,'D':1.3,'D-':1.0,'F':0.0}
构建无限循环,当输入为’-1’时终止:
while True: # 构建无限循环grade = input() # 输入五分制成绩if grade == '-1': # 当输入为'-1'时break # 终止循环
当输入不为’-1’时计算绩点
gpaSum,creditSum = 0,0while True: # 构建无限循环grade = input()credit = float(input()) # 输入五分制成绩gpaSum = gpaSum + score[grade] * credit # 累加实际成绩对应绩点creditSum = creditSum + credit # 累加课程绩点gpaAve = gpaSum / creditSum # 循环结束后计算平均绩点
完整参考代码:
score = {'A':4.0,'A-':3.7,'B+':3.3,'B':3.0,'B-':2.7,'C+':2.3,'C':2.0,'C-':1.5,'D':1.3,'D-':1.0,'F':0.0}gpaSum,creditSum = 0,0while True:grade = input()if grade == '-1':breakelif grade in score.keys():credit = float(input())gpaSum = gpaSum + score[grade] * creditcreditSum = creditSum + creditelse: # 当输入的不是'-1'也不是合法的五分制成绩时,输出错误提示print('data error')gpaAve = gpaSum / creditSumprint('{:.2f}'.format(gpaAve))
