全屏浏览题目
切换布局
作者 肖艳萍
单位 浙大城市学院
平均绩点计算方法:(课程学分1 x 绩点+课程学分2 x 绩点+课程学分n x 绩点)/(课程学分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
如果输入的等级不在上述表中,则输出data error
输入格式:
逐行输入多门课程的分数和学分,输入格式:一行是五分制的分数, 一行是一个代表学分的数字,重复多次,直到输入‘-1’时结束输入。
输出格式:
平均绩点,保留两位小数
输入样例:
在这里给出一组输入。例如:
A
2
A-
2
B
3
C
2
-1
输出样例:
在这里给出相应的输出。例如:
3.16
def get_gpa(grade):
# 定义一个字典,将等级对应到绩点
grade_to_gpa = {
'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
}
# 查找等级对应的绩点并返回
if grade in grade_to_gpa:
return grade_to_gpa[grade]
else:
return None
def calculate_gpa():
total_credit = 0
total_gpa_credit = 0
while True:
# 输入成绩对应的等级
grade = input()
# 输入‘-1’时结束输入
if grade == '-1':
break
# 输入对应的学分
credit = int(input())
# 查找等级对应的绩点
gpa = get_gpa(grade)
# 判断输入的等级是否有效
if gpa is None:
print("data error")
return None
# 计算总学分和总绩点
total_credit += credit
total_gpa_credit += credit * gpa
# 计算平均绩点并返回
gpa_average = total_gpa_credit / total_credit
return gpa_average
if __name__ == '__main__':
# 调用函数计算平均绩点
result = calculate_gpa()
if result is not None:
# 输出结果,保留两位小数
print("{:.2f}".format(result))