2017-09-29 15 views
0

私はこのコードをかなり明らかにGPA計算機ですが、唯一の加重GPA計算機です。私はコードをテストする場合には、値リストが存在するかどうかをチェックする

[A, B, C, D, F] 

と正常に動作します。しかし、私は、このような

[A+, B, B-, Z] 

などの値でそれをテストしたいとき、私はそうではありませんグレードを説明するために方法がわかりません実際にはリストにあります。私はこのような文字でテストされている場合、Noneを返すコードが必要です。私は

if grades == []: 
    return None 
if credit_worth ==[]: 
    return None 

で行った。しかし、私はちょうどそれを得るカントのようにそれを行うには、ここでのコードの残りの部分がある「場合には」私が使って試してみました:

def gpa_calculator(grades, credit_worth): 

    gpa_value = {'A': 4.0,'B': 3.0,'C': 2.0,'D': 1.0,'F': 0.0, 
        'a': 4.0, 'b': 3.0, 'c': 2.0, 'd': 1.0, 'f': 0.0} 
    total_credits = 0 

    if grades == []: 
     return None 
    if credit_worth == []: 
     return None 
    for grade, credit in zip(grades, credit_worth): 
     total_credits += gpa_value[grade] * credit 



    GPA = total_credits/sum(credit_worth) 
    return GPA 

答えて

2

ためのループにこの行を追加します。 :

if grade not in gpa_value.keys(): 
    return None 
+0

私はまだ '.keys'を学んでいませんか? – harderthanithought

+0

.keys()は、ディクショナリ内のキーのリストをフェッチするための標準的なディクショナリメソッドです。なぜあなたはそれを使用したくないのですか? – ShreyasG

+1

本当に、私は知っているコードを使いたいので、混乱することはありません。しかし、あなたは私にそれを説明したので、私は良いです。ありがとうございました。 – harderthanithought

関連する問題