Используйте range(0, n, 2) и преобразуйте его в список. Правая граница n не включается, поэтому для 10 получится [0, 2, 4, 6, 8].
Функция, генерирующая чётные числа до заданного предела
Используйте range(0, n, 2) и преобразуйте его в список. Правая граница n не включается, поэтому для 10 получится [0, 2, 4, 6, 8].
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Создайте функцию, которая принимает целое число n и возвращает список всех чётных чисел, начиная с 0 и заканчивая числом, меньшим n. Например, при входном значении 10 функция должна вернуть 0, 2, 4, 6, 8.
Ответ
Используйте range(0, n, 2) и преобразуйте его в список. Правая граница n не включается, поэтому для 10 получится [0, 2, 4, 6, 8].
Реализация:
def even_numbers(n: int) -> list[int]:
return list(range(0, n, 2))
Для n <= 0 результат пустой. Время и память пропорциональны числу возвращаемых элементов, то есть O(n) при положительном n. Если полный список не нужен, можно вернуть сам range: он хранит параметры последовательности компактно. По условию требуется именно список, поэтому здесь создаём его явно.