Есть ответы
Какой код надо написать на Python - не понимаю задание

Елена Data Python
461
4

Задали на курсе написать программу на Python но я вообще не понимаю что от меня хотят. Вот задание:

"Написать функцию которая принимает список чисел и возвращает новый список только с четными числами из исходного."

С чего начать вообще? Что значит "принимает список"? Как написать на Python?

19
Участник • 1 ответ
def get_even(numbers):
    return [n for n in numbers if n % 2 == 0]

# пример использования
result = get_even([1, 2, 3, 4, 5, 6])
print(result)  # выведет [2, 4, 6]
Аватар Елена Data

Ой, а что такое % 2 == 0 ?

Аватар Елена Морева

% это остаток от деления. Четное число при делении на 2 всегда дает остаток 0. Нечетное дает остаток 1. Вот и весь смысл.

26
Участник • 1 ответ

Разберем по шагам что вообще просит задание.

"Функция" - это блок кода с именем, который можно вызывать много раз. Создается ключевым словом def.

"Принимает список" - значит функция берет данные снаружи через аргумент в скобках.

"Возвращает новый список" - функция должна отдать результат через return.

Вот вариант без магии, максимально понятный:

def get_even_numbers(numbers):
    result = []  # пустой список для результата
    for n in numbers:  # идем по каждому числу
        if n % 2 == 0:  # проверяем: четное ли
            result.append(n)  # если да - добавляем
    return result  # отдаем результат

# вызываем функцию:
print(get_even_numbers([1, 2, 3, 4, 5]))
# результат: [2, 4]

Когда поймете логику цикла, можно посмотреть на более короткую запись через list comprehension - это то что написали выше в первом ответе.

Аватар Елена Data

Спасибо огромное!! Теперь понятно откуда что берется. Заработало!

2
Участник • 1 ответ

Еще можно через filter:

def get_even(numbers):
    return list(filter(lambda x: x % 2 == 0, numbers))

Но для начинающих это уже лишнее, сначала разберитесь с циклом.

3
Участник • 1 ответ

Кстати пока разбираетесь: официальная документация Python по-русски не очень, но на английском там все примеры очень понятные. Плюс есть сайт pythontutor.com - там можно запустить код и посмотреть пошагово как он выполняется, каждая переменная видна. Очень помогает на старте понять что вообще происходит.

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.