题目
假设平均绩点计算方法如下:(课程学分1绩点+课程学分2绩点+课程学分n*绩点)/(课程学分1+课程学分2+课程学分n)。用户循环输入五分制成绩和课程学分,输入‘-1’时结束输入,计算学生平均绩点。等级与绩点对应关系如下表:
示例
参考代码
lst_grade = []
lst_credit = []
while True:
str_grade = input("请输入课程成绩,-1结束!")
if str_grade == '-1':
break
else:
if str_grade == "A":
lst_grade.append(4.0)
elif str_grade == "A-":
lst_grade.append(3.7)
elif str_grade == "B+":
lst_grade.append(3.3)
elif str_grade == "B":
lst_grade.append(3.0)
elif str_grade == "B-":
lst_grade.append(2.7)
elif str_grade == "C+":
lst_grade.append(2.3)
elif str_grade == "C":
lst_grade.append(2.0)
elif str_grade == "C-":
lst_grade.append(1.5)
elif str_grade == "D":
lst_grade.append(1.3)
elif str_grade == "D-":
lst_grade.append(1.0)
elif str_grade == "F":
lst_grade.append(0.0)
else:
print("输入不合法!")
try:
grade = eval(input("请输入课程学分,-1结束!"))
except NameError:
print("Error:NameError!")
print("输入有误")
else:
lst_credit.append(grade)
sum_grade = 0
for i in range(len(lst_grade)):
sum_grade += lst_grade[i] * lst_credit[i]
av_grade = sum_grade / sum(lst_credit)
print("你的平均绩点为:{:0.2f}".format(av_grade))
运行结果
说明
个人能力有限,仅供参考,共同学习!