Но, к сожалению, он показывает следующую ошибку. Скажите, пожалуйста, что означает ошибка и как ее исправить?
Вы получаете TypeError исключение в if n % 2 == 0:
, поскольку интерпретатор пытается применить форматирование с использованием %
. input()
возвращает объект str, и если вы передадите его конструктору list
, он сформирует список символов в вашей строке.
Следовательно, numbers=list(input("Please enter numbers:"))
будет формировать список str
объектов (например, если вы передадите 1 2 3
вашей программе, он преобразует его в список объектов str: ['1', ' ', '2', ' ', '3']
) ,
Вам необходимо преобразовать их в int
с помощью конструктора int
. Если вы можете просто изменить первую строку в вашей программе на numbers=list(map(int, input("Please enter numbers: ").split(" ")))
, она начнет работать
Попробуйте:
numbers=list(map(int, input("Please enter numbers: ").split(" ")))
def is_even_num():
enum = []
for n in numbers:
if n % 2 == 0:
enum.append(n)
return enum
print(is_even_num())
Pythoni c способ сделать то же самое, используя список понимания :
print([i for i in map(int, input("Please enter the number: ").split(" ")) if not i % 2])