Ejercicio en python

Iniciado por Agustin_y2k, 20 Marzo 2019, 19:43 PM

0 Miembros y 1 Visitante están viendo este tema.

Agustin_y2k

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 (python) [Seleccionar]
#lista de clases

class Persona():
__nombre=""#los guiones son para que sea un atributo privado
__apellido=""
def saludar(self):
print("Hola " + self.__nombre + " " + self.__apellido)
def setNombre(self,nom):
self.__nombre=nom
def setApellido(self,ape):
self.__apellido=ape
def getNombre(self):
return self.__nombre
def getApellido(self):
return self.__apellido

print ("Tamanio de la lista: ")
n=int(input())
print("\n")

lista=[None]*n

for x in range(n):
lista[x]=Persona()
print("Ingrese Nombre:")
lista[x].setNombre(input())
print("Ingrese Apellido:")
lista[x].setApellido(input())
print("\n")

print("Quiere agrandar la lista?: s/n")
op=input()

if op=="s" or op=="S":
print ("cantidad a agregar: ")
n2=int(input())
aux=n+n2
for x in range(n2):
lista.append(None)
lista[x]=Persona()
print("Ingrese Nombre:")
lista[x].setNombre(input())
print("Ingrese Apellido:")
lista[x].setApellido(input())
print("\n")

for x in range(aux):
print("\nEn la posicion %d:" % x)
print(lista[x].getNombre())
print(lista[x].getApellido())
#Me sobre escribe los datos de la lista, se que con append
#se escriben al final pero si pruebo de otra manera luego me dice 'list index out of range'
else:
for x in range(n):
print("\nEn la posicion %d:" % x)
print(lista[x].getNombre())
print(lista[x].getApellido())


MOD: Etiqueta GeSHi.