函数-生成器之斐波拉契数列
斐波拉契数列:除第一个和第二个数外,任意一个数都可以由前两个数相加而来。
无法用生成式,但可由函数生成。
函数生成斐波拉契数列数列:
def fib(max): n,a,b=0,0,1 while n < max: print(b) a,b=b,a+b n=n+1 return 'done' fib(10)
将函数变成生成器,yield
函数第一次调用将函数变成生成器。
yield:返回值到next()调用的地方并暂停函数,next()继续执行,直到再次遇见yield
作用:将执行过程中的状态或值多次返回到外层函数
def fib(max): n,a,b=0,0,1 while n < max: yield b a,b=b,a+b n=n+1 return 'done' f=fib(10) while True: print(next(f))