es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando agregar una variable a una lista en un bucle si aún no existe, pero el resultado está vacío.

Quiero agregar el “número de entrada” a la “lista de números ya ingresados” si el número no está en la lista previamente. Por lo tanto, no deberías poder ingresar el mismo número dos veces. He agregado el “print” para mostrar que la lista está vacía, aunque “append” debería agregar el número a la lista en cada iteración. No importa las 10 iteraciones. Entonces, ¿cómo agrego el número a la lista para que la lista se renueve en cada iteración?

def preguntar_numero():
    a = 0
    while a < 10:
        lista_de_numeros_ingresados = []
        print("Esta es la lista: " + str(lista_de_numeros_ingresados))
        numero = int(input("Ingresa un número:"))
        if numero in lista_de_numeros_ingresados:
            print("El número ya está en la lista")
        else:
            lista_de_numeros_ingresados.append(numero)
        a += 1

preguntar_numero()
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código es que la lista list_of_already_entered_numbers se está inicializando como una lista vacía cada vez que se ejecuta el bucle while. Por lo tanto, la lista siempre está vacía y sigue agregando los números a la lista vacía. Para solucionar esto, mueve la inicialización de la lista fuera del bucle while, de modo que la lista se cree solo una vez y no se reinicie en cada iteración.

    Aquí está el código actualizado:

    def ask_number():
        a = 0
        list_of_already_entered_numbers = []
        while a < 10:
            print("this is the list: " + str(list_of_already_entered_numbers))
            number = int(input("Escribe un número:"))
            if number in list_of_already_entered_numbers:
                print("El número ya está en la lista")
            else:
                list_of_already_entered_numbers.append(number)
            a+=1
    
    ask_number()
    

    Ahora, la lista list_of_already_entered_numbers se inicializa fuera del bucle while y se actualizará con nuevos números en cada iteración. Y si el número ya está en la lista, no se agregará nuevamente.

Comments are closed.