描述
平均绩点计算方法:(课程学分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
输入格式
每组输入包括两行, 第一行是五分制的分数, 第二行是一个代表学分的数字
输出格式
输入输出示例
A
3
B
3
A
2
-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,0
while 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,0
while True:
grade = input()
if grade == '-1':
break
elif grade in score.keys():
credit = float(input())
gpaSum = gpaSum + score[grade] * credit
creditSum = creditSum + credit
else: # 当输入的不是'-1'也不是合法的五分制成绩时,输出错误提示
print('data error')
gpaAve = gpaSum / creditSum
print('{:.2f}'.format(gpaAve))