如何计算GPA分配

时间:2013-05-03 04:38:08

标签: python python-3.x

我有一个编程任务,可以打开一个文件并计算所有GPA。

其中A = 4,B = 3,C = 2,D = 1,E = 0 .txt文件包含:

ECS10 A 4

ECS20 B 3

JPN4 C 5

PHY9A D 5

最后一个元素是学分数量,之前的字母是成绩。我只能得到最后一个元素和字母,但我卡住了。我继续在for循环中使用if语句从字母中获取数字,但我似乎无法使它工作。 (我是非常新的编程所以任何一种帮助将不胜感激)谢谢!

这是我到目前为止所得到的:

f = open(“grade_file.txt”,“r”)

line = f.readlines()

隔离数字

for i in(line):

i = i.strip()

print(i[-1:])

隔离字母

打印( “\ n” 个)

for i in(line):

i = i.strip()

print(i[-3:-2])

GPA可以通过将学分数乘以收到的成绩并将其除以学分总数来计算。

1 个答案:

答案 0 :(得分:2)

试试这段代码:

#!/usr/bin/env python3.3-32

grade_mapping = {'A':4, 'B':3, 'C':2, 'D':1, 'E':0}
weighted_sum = 0
credits = 0

for line in open("grade_file.txt", "r"):
    elems = line.split(' ')
    weighted_sum += grade_mapping[elems[1]] * int(elems[2])
    credits += float(elems[2])

gpa = weighted_sum / credits
print(gpa)

我用这个文件来测试:

ECS10 A 4
ECS20 B 3
JPN4 C 5
PHY9A D 5

结果应为2.35294117647