0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, … 
(последовательность A000045 в OEIS),
в которой каждое последующее число равно сумме двух предыдущих чисел. Названы в честь средневекового математика Леонардо Пизанского (известного как Фибоначчи).
Более формально, последовательность чисел Фибоначчи F_n задаётся линейным рекуррентным соотношением: $$F_{n}=F_{n-1}+F_{n-2} $$
def fibonacci(max): # генератор (а не функция, т.к. оператор return заменён на yield) 
    a, b = 0, 1
    while a < max:
        yield a # return a, + запоминаем место рестарта для следующего вызова
        a, b = b, a + b # параллельное присваивание,
        #которое выполняется одновременно и параллельно

for n in fibonacci(100): # используем генератор fibonacci() как итератор
        print (n) # печатаем все числа Фибоначчи меньшие 100 через пробел
Вывод результата:
0 
1
1
2
3
5
8
13
21
34
55
89


2015-11-28 • Просмотров [ 272 ]