Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: Agustin_y2k en 20 Marzo 2019, 19:43 pm



Título: Ejercicio en python
Publicado por: Agustin_y2k en 20 Marzo 2019, 19:43 pm
Buenas, en mi facultad migraron todo el programa de C a python y soy novato en el lenguaje... Ya estamos en Clase y diseñé una lista para la clase que funciona bien, pero me gustaria saber como se puede hacer para agrandar la lista... Paso el código

Código
  1. #lista de clases
  2.  
  3. class Persona():
  4. __nombre=""#los guiones son para que sea un atributo privado
  5. __apellido=""
  6. def saludar(self):
  7. print("Hola " + self.__nombre + " " + self.__apellido)
  8. def setNombre(self,nom):
  9. self.__nombre=nom
  10. def setApellido(self,ape):
  11. self.__apellido=ape
  12. def getNombre(self):
  13. return self.__nombre
  14. def getApellido(self):
  15. return self.__apellido
  16.  
  17. print ("Tamanio de la lista: ")
  18. n=int(input())
  19. print("\n")
  20.  
  21. lista=[None]*n
  22.  
  23. for x in range(n):
  24. lista[x]=Persona()
  25. print("Ingrese Nombre:")
  26. lista[x].setNombre(input())
  27. print("Ingrese Apellido:")
  28. lista[x].setApellido(input())
  29. print("\n")
  30.  
  31. print("Quiere agrandar la lista?: s/n")
  32. op=input()
  33.  
  34. if op=="s" or op=="S":
  35. print ("cantidad a agregar: ")
  36. n2=int(input())
  37. aux=n+n2
  38. for x in range(n2):
  39. lista.append(None)
  40. lista[x]=Persona()
  41. print("Ingrese Nombre:")
  42. lista[x].setNombre(input())
  43. print("Ingrese Apellido:")
  44. lista[x].setApellido(input())
  45. print("\n")
  46.  
  47. for x in range(aux):
  48. print("\nEn la posicion %d:" % x)
  49. print(lista[x].getNombre())
  50. print(lista[x].getApellido())
  51. #Me sobre escribe los datos de la lista, se que con append
  52. #se escriben al final pero si pruebo de otra manera luego me dice 'list index out of range'
  53. else:
  54. for x in range(n):
  55. print("\nEn la posicion %d:" % x)
  56. print(lista[x].getNombre())
  57. print(lista[x].getApellido())
  58.  

MOD: Etiqueta GeSHi.