列表索引超出我的编码范围

时间:2016-04-20 22:44:11

标签: python

任何人都可以帮我解决这个错误,我一直在讨论。我试图寻找解决方案,但我找不到任何解决方案。以下是错误消息,也是我编码的一部分

Please enter your class Y or X or Z: Y
Traceback (most recent call last):
File "/Volumes/LIAM'S USB/DEV6 FINAL.py", line 118, in <module>
score=int(items[1])
IndexError: list index out of range


results={
start=True
while (start):
    pupil_class=input("\nPlease enter your class Y or X or Z: ")
    if pupil_class == ("Y"):
            classfile="Class_Y_results.txt" 
    elif pupil_class == ("X"):
            classfile="Class_X_results.txt" 
    elif pupil_class == ("Z"):
            classfile="Class_Z_results.txt" 

    f=open(classfile,'r')

    for line in f:
            items=line.split(',')       
            name=items[0]
            score=int(items[1])                
            if name in results:
                    results[name].append(score)                        
            else:
                    results[name]=[]
                    results[name].append(score)

    f.close()

2 个答案:

答案 0 :(得分:1)

Class_Y_Results.txt中的某一行只有一个条目(不用逗号分隔),因此items=line.split(',')返回的列表长度只有1(或者可能为0),导致{{1抛出score=int(items[1])

样品:

IndexError

答案 1 :(得分:1)

您的某个文件中可能存在空白状态。这不会包含逗号,因此您不会有Parameters,这会产生您看到的错误消息。

检查从拆分中返回的字段数以解决此问题。