大学院の出願の時に作成したGPA計算プログラムを残しておきます。
大学院によっては、cumulative GPA を取るところもあれば、そうでないところもあるので、単位取得年度によって計算に含めるか指定することができます。
with open("data.txt","r") as fp:
grades = [i.replace("\n","").split(",") for i in fp.readlines()]
def ToGP(l:str) -> int:
return {"S":4,"A":3,"B":2,"C":1}[l.upper().replace(" ","")]
def calcGPA(y:int) -> None:
credits = 0
GP = 0
for i in grades:
if int(i[3])> y and str(i[2]) != "T":
credits += int(i[1])
GP += ToGP(i[2])*int(i[1])
print(credits)
print(GP/credits)

