Error al definir función: not all arguments converted during string formatting

publicado por: Anonymous

Estaba haciendo un ejercicio de definición de función que dice: Escribe una función que reciba una lista de números y devuelva otra pero conteniendo solo los números pares.

Resulta que al momento de correr el programa me saltan estos errores:

Traceback (most recent call last): File
“C:/Users/sebastian/PycharmProjects/ProyectoPrimero/Función números
pares en lista.py”, line 19, in
pares_en_lista = numeros_pares_en_lista(lista_numeros) File “C:/Users/sebastian/PycharmProjects/ProyectoPrimero/Función números
pares en lista.py”, line 5, in numeros_pares_en_lista
if numero % 2 == 0: TypeError: not all arguments converted during string formatting

Estuve revisando el código por si veia algo fuera de lugar pero no, además que el PyCharm no detecta ningún inconveniente.

Agradeceria la ayuda.

def numeros_pares_en_lista(lista_de_numeros):
    numeros_pares = []
    for numero in lista_de_numeros:
        if numero.isdigit():
            if numero % 2 == 0:
                numeros_pares.append(numero)
    return numeros_pares


numero_a_agregar = ""
lista_numeros = []

while not numero_a_agregar == "Finalizar":
    numero_a_agregar = input("Dime un número: ")
    if numero_a_agregar.isdigit():
        lista_numeros.append(numero_a_agregar)
        print("Numero añadido")

pares_en_lista = numeros_pares_en_lista(lista_numeros)
print(f"Estos son los números pares en la lista {pares_en_lista}")

solución

def numeros_pares_en_lista(lista_de_numeros):
    numeros_pares = []
    for numero in lista_de_numeros:
        if numero.isdigit():
            if float(numero) % 2 == 0:
                numeros_pares.append(numero)
    return numeros_pares


numero_a_agregar = ""
lista_numeros = []

while not numero_a_agregar == "Finalizar":
    numero_a_agregar = input("Dime un número: ")
    if numero_a_agregar.isdigit():
        lista_numeros.append(numero_a_agregar)
        print("Numero añadido")

todo lo que tienes que hacer es convertir el “número” a float o int.
python no puede calcular strings.

es buena práctica asegurarte que todos los números estén en el formato adecuado.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *