我在python中有“列表索引超出范围”,但我不明白为什么

2024-05-16 15:09:31 发布

您现在位置:Python中文网/ 问答频道 /正文

datos = {"nombre": "Juan","apellido1": "Perez", 
         "apellido2": "Palma","sexo": "M","codigo":"30","ingreso": "2009"}

def generar_rol(datos):

    from definiciones import digito_verificador
    archivo= open('alumnos.dat')
    zzz=0
    nombret=datos['nombre']+datos['apellido1']+datos['apellido2']
    for linea in archivo:
        zzz+=1
        todo=linea.strip().split()
        print todo[2].split('|')      #<----HERE (line 24)
        nombre = todo[2].split('|')
        nombretotal=''.join(nombre)
        if nombret==nombretotal:
            break
    zzz= str(zzz)
    Z = ["0", "0", "0"]
    if len(zzz)  >= 1 :
        Z[-1] = zzz[-1]
    if len(zzz)  >= 2 :
        Z[-2] = zzz[-2]
    if len(zzz)  >= 3 :
        Z[-3] = zzz[-3]
    zzz = "".join(Z)      
    anno=''
    for i in datos:
        if int(datos['ingreso'])<2010:
            anno=datos['ingreso'][0]+datos['ingreso'][-1]
        if int(datos['ingreso'])>=2010:
            anno=datos['ingreso']    
    rol=anno+datos['codigo']+str(zzz)
    rol= rol+'-'+digito_verificador(rol)
    archivo.close()
    return rol

generar_rol(datos)

我有个错误。。。你知道吗

['JUAN', 'PEREZ', 'PALMA']
Traceback (most recent call last):
  File "C:\Users\pinky\Downloads\TAREA 3\TAREA 3\Tarea 3\funciones.py", line 50, in <module>
    generar_rol(datos)
  File "C:\Users\pinky\Downloads\TAREA 3\TAREA 3\Tarea 3\funciones.py", line 24, in generar_rol
    print todo[2].split('|')      #<----HERE
IndexError: list index out of range

Tags: inleniflinetodosplitzzzanno
1条回答
网友
1楼 · 发布于 2024-05-16 15:09:31

索引超出范围意味着您试图访问列表中不存在的元素。索引计数从0开始,所以您的意思可能是要执行[1]以获取第二个元素。你知道吗

相关问题 更多 >