def fib1(n):
a, b = 0, 1
while n >0:
n -= 1
a, b = b ,a + b
if b > 30:
break
else:
yield b
def fib2():
a, b = 0, 1
fibs = []
for i in range(10):
a, b = b, a+b
fibs.append(b)
return fibs
def fib3(n):
if n == 0 :
return 0
elif n == 1:
return 1
else:
return fib3(n-1) + fib3(n-2)
import itertools
def fib4():
a, b = 0, 1
while 1:
yield b
a, b = b, a+b
reference
https://foofish.net/iterators-vs-generators.html