题解 | #牛牛的绩点#
牛牛的绩点
http://www.nowcoder.com/practice/de8bc3e736164786b07a4dd64ed172f7
# 创建 grade 和 score 列表,存储每次输入的课程等级和学分
grade = []
score = []
# 创建 total_score变量,记录所有的课程的学分
total_score = 0
# 创建 result,记录每门课学分乘上单门课绩点的结果
result = 0
# 连续输入一行等级一行学分,遇到等级为False则结束输入
while 1:
# 创建 tmp_grade 和 tmp_score 临时变量,存储单次输入的课程等级和对应的学分
tmp_grade = str(input())
if tmp_grade == 'False':
break
tmp_score = float(input())
grade.append(tmp_grade)
score.append(tmp_score)
total_score += tmp_score
# 将每门课学分乘上单门课绩点,计算出相应的结果
for i in range(len(grade)):
if grade[i] == 'A':
result += 4.0*score[i]
elif grade[i] == 'B':
result += 3.0*score[i]
elif grade[i] == 'C':
result += 2.0*score[i]
elif grade[i] == 'D':
result += 1.0*score[i]
else:
result += 0
# 打印出牛牛的均绩(每门课学分乘上单门课绩点,求和后对学分求均值),保留2位小数
# print(round(result/total_score,2)) # 这种方式如果是2.0,结果只会是2.0,不会保留2位小数
print('%.2f'%(result/total_score))