打印斐波那契数列
def Fib(a,b):
yield a
yield b
n=0
while True:
n=a+b
b=a
a=n
yield n
a=1
b=1
m=10
f=Fib(a,b)
for i in range(m):
print(next(f))
结果:
1
1
2
3
5
8
13
21
34
55
但是如下这样就是错误的
def Fib(a,b):
yield a
yield b
n=0
while True:
n=a+b
b=a
a=n
yield n
a=1
b=1
m=10
#f=Fib(a,b)
for i in range(m):
#print(next(f))
print(next(Fib(a,b)))
原因是每次都会重新创建一个迭代器,而不是在之前的迭代器上做迭代