Se supone que este programa hecho en python 3.72 recibe una lista de números del usuario y luego imprime cuatro listas diferentes con los números que son múltiplos de 2, 3, 5 y 7.
num_input = ""
num_list = []
while num_input != "ESC":
if num_input.isdigit():
print("Number added")
num_list.append(num_input)
num_input = input("Enter a number list [Type ESC to end list]: ")
num_list_2 = []
num_list_3 = []
num_list_5 = []
num_list_7 = []
for item in num_list:
if item % 2 == 0:
num_list_2.append(item)
if item % 3 == 0:
num_list_3.append(item)
if item % 5 == 0:
num_list_5.append(item)
if item % 7 == 0:
num_list_7.append(item)
print(num_list_2)
print(num_list_3)
print(num_list_5)
print(num_list_7)
cuando ejecuté el código funcionó bien hasta que escribí "ESC" para finalizar la lista y mostró esto:
Traceback (most recent call last):
File "test.py", line 17, in
<module>
if item % 2 == 0:
TypeError: not all arguments converted during string formatting
Su lista consta de cadenas, no de números. Arregle la llamada append () de la siguiente manera: num_list.append (int (num_input))
—
rg_software
%
es un operador de formato con una cadena en el lado izquierdo. Convierte a entero como lo sugieren otros comentarios.