错误:“float”对象不是iterable python

2024-05-21 05:01:50 发布

您现在位置:Python中文网/ 问答频道 /正文

lloyd = {
    "name": "Lloyd",
    "homework": [90.0, 97.0, 75.0, 92.0],
    "quizzes": [88.0, 40.0, 94.0],
    "tests": [75.0, 90.0]
}
alice = {
    "name": "Alice",
    "homework": [100.0, 92.0, 98.0, 100.0],
    "quizzes": [82.0, 83.0, 91.0],
    "tests": [89.0, 97.0]
}
tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]
}


def average(numbers):

    total = sum(numbers)
    total = float(total)

    return total / len(numbers)

def get_average(student):
    homework = average(student['homework'])
    quizzes = average(student['quizzes'])
    tests = average(student['tests'])
    return sum(homework*  0.1 +\
               quizzes *  0.3 +\
               tests   *  0.6)           

我不知道我做错了什么。你知道吗

忘了说我得到的是:“error:'float'is not iterable”。你知道吗

我应该得到的例如:

平均得分(爱丽丝):91.15。你知道吗


Tags: namereturndeftestsfloatstudenttotalsum
1条回答
网友
1楼 · 发布于 2024-05-21 05:01:50

内置函数sum期望一个数字序列作为一个参数求和。你只给了它一个号码。在这种情况下,您根本不需要调用sum函数:

 return homework*  0.1 +\
        quizzes *  0.3 +\
        tests   *  0.6  

或者,正确地使用sum

 return sum([homework*  0.1,
            quizzes  *  0.3,
            tests    *  0.6])  

相关问题 更多 >