来看一下有yield和没有yield的情况会对生成器了解多点:
第一种:使用 yield
#!/usr/bin/python3
import sys
def fibonacci(n,w=0):# 生成器函数 - 斐波那契
a, b, counter =0,1,0
whileTrue:
if(counter > n):
return
yield a
a, b = b, a + b
print('%d,%d'%(a,b))
counter +=1
f = fibonacci(10,0)# f 是一个迭代器,由生成器返回生成
whileTrue:
try:
print(next(f),end=" ")
except:
sys.exit()
输出结果:
01,1
11,2
12,3
23,5
35,8
58,13
813,21
1321,34
2134,55
3455,89
5589,144