描述

平均绩点计算方法:(课程学分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‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输入格式

每组输入包括两行, 第一行是五分制的分数, 第二行是一个代表学分的数字‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

输出格式

平均绩点,保留两位小数

输入输出示例

  1. A
  2. 3
  3. B
  4. 3
  5. A
  6. 2
  7. -1

输出:3.62

构建一个字典存储五分制成绩与绩点:

  1. score = {'A':4.0,'A-':3.7,'B+':3.3,'B':3.0,'B-':2.7,
  2. 'C+':2.3,'C':2.0,'C-':1.5,'D':1.3,'D-':1.0,'F':0.0}

构建无限循环,当输入为’-1’时终止:

  1. while True: # 构建无限循环
  2. grade = input() # 输入五分制成绩
  3. if grade == '-1': # 当输入为'-1'时
  4. break # 终止循环

当输入不为’-1’时计算绩点

  1. gpaSum,creditSum = 0,0
  2. while True: # 构建无限循环
  3. grade = input()
  4. credit = float(input()) # 输入五分制成绩
  5. gpaSum = gpaSum + score[grade] * credit # 累加实际成绩对应绩点
  6. creditSum = creditSum + credit # 累加课程绩点
  7. gpaAve = gpaSum / creditSum # 循环结束后计算平均绩点

完整参考代码:

  1. 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}
  2. gpaSum,creditSum = 0,0
  3. while True:
  4. grade = input()
  5. if grade == '-1':
  6. break
  7. elif grade in score.keys():
  8. credit = float(input())
  9. gpaSum = gpaSum + score[grade] * credit
  10. creditSum = creditSum + credit
  11. else: # 当输入的不是'-1'也不是合法的五分制成绩时,输出错误提示
  12. print('data error')
  13. gpaAve = gpaSum / creditSum
  14. print('{:.2f}'.format(gpaAve))