2013-08-31 21 views
0

我對字典 這裏我的代碼一些問題存在一些問題:有關Python 2.x的

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 (number): 
    total = 0.0 
    for i in number: 
     total = total + number[i] 
    return total/ len(number) 

def get_average(student): 
     return average(student["homework"])*0.1 + average(student["quizzes"])*0.3 + average(student["tests"])*0.6 

print get_average(tyler) 

錯誤:TypeError: list indices must be integers, not float

誰能幫助?

+0

已經張貼下面的答案。您可能需要閱讀如何在SO問題中對代碼進行格式設置,以使其更易於閱讀(儘管我現在看到Haedrian已經爲您做了這件事......)另外,您的標題沒有提供有關問題的說明。 – knolleary

回答

0

的問題是在你的average功能:

for i in number: 
    total = total + number[i] 

在這個循環中,inumber陣列,而不是索引中被設置爲每個值。

你的循環可能僅僅是:

for i in number: 
    total = total + i 

同樣,這是蟒蛇,而不是for循環,你可以只使用sum()功能:

def average(number): 
    return float(sum(number))/len(number)