代码:
#!/usr/bin/python3
import sysdef fib(n):
a = 0
b = 1
counter = 0
while True:
if (counter > n):
return
yield a #在遇到yield函数时,函数暂停且保存当前信息,返回yield的值,在下一次的执行next()时从当前位置继续执行
a = b
b = a + b
counter += 1
f = fib(5) # f 是一个迭代器,由生成器返回生成
while True:
try:
print next(f)+" "
except StopIteration: #处理next()的异常
sys.exit()
运行结果:
0 1 1 2 3 5