Questo programma fatto in python 3.72 dovrebbe ricevere una lista di numeri da parte dell'utente e quindi stampare quattro liste diverse con i numeri che sono multipli di 2, 3, 5 e 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)
quando ho eseguito il codice è andato bene fino a quando ho scritto "ESC" per terminare la lista e questo ha mostrato questo:
Traceback (most recent call last):
File "test.py", line 17, in
<module>
if item % 2 == 0:
TypeError: not all arguments converted during string formatting
%
è un operatore di formattazione con una stringa sul lato sinistro. Converti in numero intero come suggerito da altri commenti.