你能用几种方式写出fib

       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

猜你喜欢

转载自hugoren.iteye.com/blog/2387028
fib