2013-05-03 138 views
1

所以我在編寫作業時遇到了麻煩,我試圖製作一個GPA計算器,我認爲它大部分都是完整的,但它不會工作,因爲它一直告訴我,列表索引超出範圍在8行列表索引超出範圍? Python

def main(): 
    file_name = input("Enter filename: ") 
    file = open(file_name, "r") 
    total = [0, 0] 
    count = [0, 0] 
    for line in file: 
     sline = line[:-1].split(" ") 
     grade = sline[1] # Here 
     units = sline[2] 
     grade_points = (ord("E") - ord(grade)) 
     print(grade, units, grade_points) 
    total = units * grade_points 
    gpa = total/units 
    print(total) 

main() 
+1

'sline'具有少於2個元素,例如,因爲該行中少於2個字段。 – bereal 2013-05-03 02:48:34

+0

發佈您的輸入文件樣本,以便人們可以幫助您 – jurgenreza 2013-05-03 02:55:27

回答

1

在第8行,它說:sline[2],該指數是2#有時顯然你進行拆分,不會產生第三個指標(記住,指數的開始上0,不是1)。因此,當拆分沒有第三個索引時,如果您詢問它是否存在,那麼索引超出範圍。這就是你得到這個錯誤的原因。