Python新手 - 制作GPA计算器

时间:2015-02-02 21:21:39

标签: python for-loop

我是python的新手,并试图弄清楚如何将函数添加到我已经完成的某些编程中。我写了(下面)一点来将字母等级转换为GPA(平均成绩点)并想要改变它以便我可以输入几个字母并获得平均GPA。我遇到的问题是如何让它运行每个输入字母,然后将其转换为新的形式;我想我必须使用“for gp in range:”这样的东西,但我很失落如何开始。有任何想法吗?

from sys import argv
def gp(w):
if w.startswith("A"):
    gp= int(4)
if w.startswith("B"):
    gp= int(3)
if w.startswith("C"):
    gp= int(2)
if w.startswith("D"):
    gp= int(1)  
if w.startswith("F"):
    gp= int(0)
if w.endswith("+"):
    return gp+0.3
if w.endswith("-"):
    return gp-0.3
else:
    return gp
if __name__ == '__main__':
grade = argv[1]
print("%.1f" % gp(grade))

1 个答案:

答案 0 :(得分:0)

def gp(ltr):
    grade = {"A":4.0, "B":3.0, "C":2.0, "D":1.0, "F":0.0}
    mod   = {"": 0.0, "+":0.3, "-":-0.3}
    return grade[ltr[0]] + mod[ltr[1:]]

letters = "B A A- C F A"
grades  = [gp(letter) for letter in letters.split()]
average = sum(grades) / len(grades)