Представленная функция уже возвращает только числа, кратные трём: условие num % 3 == 0 проверяет нулевой остаток. При n=10 результат [0, 3, 6, 9].
Выводить только числа, кратные трём
Представленная функция уже возвращает только числа, кратные трём: условие num % 3 == 0 проверяет нулевой остаток. При n=10 результат [0, 3, 6, 9].
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо изменить функцию так, чтобы она возвращала исключительно те числа, которые делятся на 3 без остатка.
def get_divisible_by_three(n: int = 10) -> list[int]:
return [num for num in range(n) if num % 3 == 0]
Ответ
Представленная функция уже возвращает только числа, кратные трём: условие num % 3 == 0 проверяет нулевой остаток. При n=10 результат [0, 3, 6, 9].
Можно упростить перебор, сразу задав шаг:
def get_divisible_by_three(n: int = 10) -> list[int]:
return list(range(0, n, 3))
Для неотрицательной верхней границы результат совпадает с исходным comprehension. При n<=0 оба варианта возвращают пустой список. Ноль включается, поскольку делится на 3 без остатка; если требуются только положительные числа, начните с 3. Верхняя граница n не включается.