Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Ejercicio con funciones y listas
#1
Brick 
Hola, recién estoy empezando con Python, y tengo que resolver este ejercicio:

Definir la función agregar_borrar_mostrar que tome 4 parámetros: una lista, un string y dos enteros, y agregue el string al final de la lista, borre el elemento de la posición especificada en el primer entero (parámetro), e imprima el elemento de la posición especificada en el segundo entero (parámetro).
---
Bien, mi código es este:

def agregar_borrar_mostrar(lista,cadena,ent1,ent2):
lista=[]
  for ent1 in lista:
    lista.append(32)
  for ent2 in lista:
    lista.append(89)
  for cadena in lista:
    lista.append('Hola')
  lista.pop(0)
  print (lista[0])

Lo pruebo y no funciona, ni siquiera tira error, directamente no hace nada

Alguna idea de lo que puede estar mal?

Gracias Smile
Responder
#2
Estuve haciendo algunas pruebas con tu código y encontré con que la primer falla es que como bien te decía, estas borrando la lista al hacer lista=[].

Comente esa linea y encontré con que se queda en el primer bucle/loop infinitamente.
Código:
for ent1 in lista:

Y es lógico que lo haga, no entiendo porque haces tantos for con algo que seria mas simple, por ahí te pasaron el ejemplo así y vos tenias que hacerlo funcionar, no se.

Acá te dejo lo que entendí que te pidieron pero con un solo bucle y todo comentado!

Código:
def agregar_borrar_mostrar(lista,cadena,ent1:"borra",ent2:"imprime"):
    #Imprimo la lista original para compararla
    print("original:",lista)
    #borro el elemento en la posicion especifica en el parametro 1
    lista.pop(ent1)
    #Agrego el string que viene en el parametro "cadena" al final de la lista
    lista.append(cadena)

    #Muesto la nueva lista
    print("Nueva: ",lista)
    #Imprimo el objeto especificado en el parametro 2
    print("Imprimo segun parametro 2:",lista[ent2])

    print("Muesto lista completa:")
    #Muesto la lista completa, una por una.
    for lst in lista:
        print(lst)
    
#Creo una lista con 4 strings
lista =["abc","def","ghi","jkl"]

#Llamo a la funcion y le paso los parametros
agregar_borrar_mostrar(lista,"TEST",1,3)

Esto devuelve lo siguiente:
Cita:>>> 
original: ['abc', 'def', 'ghi', 'jkl']
Nueva:  ['abc', 'ghi', 'jkl', 'TEST']
Imprimo segun parametro 2: TEST
Muesto lista completa:
abc
ghi
jkl
TEST
>>> 
Esto lo hice con el ide python3, por cualquier duda!
Espero te sea útil!
Saludos!
Responder


Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)