• Viernes 9 de Mayo de 2025, 10:15

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - cufu8583

Páginas: [1]
1
Python / IndexError: list index out of range
« en: Sábado 23 de Febrero de 2013, 22:30 »
Código: Python
  1. Código Python:
  2.  
  3. # Aqui es donde tengo todos los Modulos.
  4.  
  5. def bienvenidos():
  6.    print "Binevenidos a Agenda Telefonica"
  7.    print "Elige una opcion:"
  8.    print "1- Anadir un registro a la Agenda: "
  9.    print "2- Listar el contenido de la Agenda: "
  10.    print "3- Buscar por nombre: "
  11.  
  12. def escribir():
  13.    print "Has seleccionado Anadir un Registro a la Agenda."  
  14.    nombre = raw_input("Ingrese el nombre del contacto: ")
  15.    telefono = raw_input("Ingrese el numero de telefono del contacto: ")
  16.    
  17.    agenda = open("agendatelefonica.csv")
  18.    for n in range(1,40):
  19.       linea = agenda.readline()
  20.       lineapartida = linea.split(',')
  21. ##      print lineapartida[0]
  22.      
  23.       if lineapartida[0] != "":
  24.          memoria = lineapartida[0]
  25. ##   print "El ultimo numero es: ",memoria        
  26.    agenda.close()
  27.  
  28.    memonum = int(memoria)
  29.    posicion = 0
  30.    posicion = memonum + 1  
  31.    postr = str(posicion)
  32.    print "El nombre del contacto es: ",nombre,"y su numero de telefono es: ",telefono
  33.    agenda = open("agendatelefonica.csv",'a')
  34.    agenda.write(postr)
  35.    agenda.write(',')
  36.    agenda.write(nombre)
  37.    agenda.write(',')
  38.    agenda.write(telefono)
  39.    agenda.write("\n")
  40.    agenda.close()
  41.  
  42. def listar(fin):
  43.    print "Has seleccionado Listar el contenido de la Agenda."
  44.    agenda = open("agendatelefonica.csv")
  45.    numero = 0
  46.    for i in range(1,fin):
  47.       lectura = agenda.readline()
  48.       print lectura.replace(',',"\t\t")
  49.       numero = numero + 1      
  50.    print "Ya he terminado de leer la agenda"
  51.    agenda.close()
  52.  
  53. def mierror():
  54.    print "Esa opcion es invalida."
  55.  
  56. def buscador(nombrebuscado):
  57.     print "Aqui buscare las coincidencias: "
  58.     agenda = open("agendatelefonica.csv")
  59.     for i in range(1,30):
  60.        i = agenda.readline()
  61.        partido = i.split(',')
  62.        if nombrebuscado == partido[1]:
  63.           print partido[2]          
  64.     agenda.close()
  65.  
  66.  
  67. ########################################Aqui esta el principal programa desde donde corro el modulo.py########
  68. # y este es el principal programa de donde lo corrro:
  69.  
  70. Código Python:
  71.  
  72. import modulo
  73.  
  74. def principal():
  75.    modulo.bienvenidos()
  76.  
  77.    opcion = input("> ")
  78.  
  79.    print "Has seleccionado la opcion: ",opcion
  80.  
  81.    if opcion == 1:
  82.       modulo.escribir()
  83.       principal()
  84.    elif opcion == 2:
  85.       print "Selecciona cuantos registros quieres ver: "
  86.       registros = raw_input("> ")
  87.       registrosnumero = int(registros)
  88.       modulo.listar((registrosnumero+1))
  89.       principal()
  90.    elif opcion == 3:      
  91.       print "Dime el nombre de la persona que estas buscando: "
  92.       nombrebuscado = raw_input('> ')
  93.       modulo.buscador(nombrebuscado)
  94.       principal()
  95.      
  96.    else:
  97.       modulo.mierror()
  98.       principal()
  99.  
  100. principal()
  101.  
Estoy siguiendo un curso de python y estamos creando una agenda, pero me sale este error:

if nombrebuscado == partido[1]:
IndexError: list index out of range

El problema es que los cursos son en python 3 y yo uso el python 2.7, ya le he modificado muchas cosas de python 3 para que funcione en python 2.7.

Ya revise el archivo .csv y tengo las 3 columnas, esta asi:

1,luis,78595658

donde 1 seria el indice 0, luis seria indice 1 y 78595658 seria el indice 2.

y es lo que yo quiero donde llame al indice 1 que seria el nombre partido[1] y como resultado de el telefono indice 2 partido[2]. ya probe de varias formas y nada de nada.

Páginas: [1]