2015-11-19 90 views
0
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)   

我不知道我在做什么错。错误:'浮动'的对象是不可迭代的 - python

忘了把我得到:“错误:'浮动'不可迭代”。

我应该得到什么,例如:

get_average(爱丽丝):91.15。

+0

我不知道你在做什么错要么!发布一个问题陈述和你应该得到什么输出与你得到什么。 – Mathemats

回答

1

sum内置函数期望数字序列总和为一个参数。你只给它一个数字。在这种情况下,你并不需要在所有调用sum功能:

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

或者,使用sum正确:

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

第二个仍然没有正确使用总和,你需要把参数括起来,所以它的单个迭代而不是一个单独的参数 –

+0

但为什么我需要使用[]? 它与[]合作,但我不明白为什么我需要使用它。 但现在我看到根本没有必要使用总和。 –

相关问题