2015-11-19 88 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

但爲什麼我需要使用[]? 它與[]合作,但我不明白爲什麼我需要使用它。 但現在我看到根本沒有必要使用總和。 –

相關問題