Чистый способ генерировать последовательность Фибоначчи в Python — использовать функцию-генератор с ключевым словом yield. Этот подход экономит память, потому что выдаёт значения по одному за раз вместо того, чтобы хранить всю последовательность в списке.
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
list(fibonacci(10)) # [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
a, b = 0, 1 устанавливает первые два значения Фибоначчи с использованием распаковки кортежаn раз с помощью range(n)yield a — возвращает текущее значение вызывающему коду, не выходя из функцииa, b = b, a + b продвигает оба значения за один шаг, избегая необходимости во вспомогательной переменнойlist(), чтобы собрать все результаты, или лениво обходить их циклом forn по сравнению с подходом на основе спискаКлючевое слово yield в функции-генераторе возвращает значение и немедленно выходит из функции, подобно оператору return.
Новый — ещё не проверен сообществом
Вы