Ряд Фибоначчи на Python

Нужно было написать код на Python опираясь на while, что бы он выводил Ряд Фибоначчи! Я попробовал так:

fib1 = 0
fib2 = 0
while fib1 < 100 and fib2 < 100:
    fib1 += 1
    fib2 += 1
    i = fib1 + fib2 - 1
    print(i)

На мой взгляд всё правильно, но почему-то не работает:(

Прошу показать ошибку и исправить код.


Ответы (3 шт):

Автор решения: Aziz Umarov

Поробуйте так, но это выведет все числа до 100, а не 100 членов последовательности

fib1 = 0
fib2 = 1
while fib1 < 100 and fib2 < 100:
    i = fib1 + fib2
    fib1 = fib2
    fib2 = i
    print(i)
→ Ссылка
Автор решения: Ildar

один из нерекурсивных вариантов

fib1 = 0
fib2 = 1
fib3 = 1
print(fib1)
print(fib2)
print(fib3)

while fib3 < 100:
    fib1 = fib2
    fib2 = fib3
    fib3 = fib1 + fib2
    print(fib3)
→ Ссылка
Автор решения: вася

Вывод N элементов:

def fibonacci():
    a, b = 0, 1
    while True:            
        yield a            
        a, b = b, a + b 

for index, fibonacci_number in zip(range(42), fibonacci()):
     print('{} - {}'.format(index + 1, fibonacci_number))

Вывод элементов по условию:

def fibonacci():
    a, b = 0, 1
    while True:            
        yield a            
        a, b = b, a + b 

gen = fibonacci()
next_fibonacci_number = next(gen)

while next_fibonacci_number < 100:
  print(next_fibonacci_number)
  next_fibonacci_number = next(gen)
→ Ссылка