检查值列表以查看它们是否存在

时间:2017-09-29 15:29:26

标签: python algorithm

我有这个代码,显然是一个GPA计算器,但它只是一个加权的GPA计算器。当我测试代码时,它可以正常使用值

[A, B, C, D, F]

但是当我想用诸如

之类的值来测试它时
[A+, B, B-, Z]

我不知道如何说明实际上不在列表中的成绩。如果用这样的字母测试,我需要代码返回None。我曾尝试使用“if”来像我一样使用

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

1 个答案:

答案 0 :(得分:2)

在for循环中添加以下行:

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