Назад к задачам
Junior — Senior
3

Переписать функцию, используя идиоматический Python

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Функция foo(length: int) должна возвращать все чётные числа от 0 до length (включительно), учитывая знак передаваемого параметра: если length отрицателен, результат также должен быть отрицательным. Требуется оформить реализацию в «python‑стиле», применив list comprehension и повысив читаемость кода.

def foo(length: int = 10) -> list[int]:
    result: list[int] = []
    is_minus = length < 0
    for i in range(abs(length)):
        if not i % 2:
            result.append(i if not is_minus else i * (-1))
    return result

Перепишите данную функцию, используя возможности Python, такие как list comprehension, тернарные выражения и понятные имена переменных, чтобы код стал короче и легче воспринимался.