生成器
在Python中使用了yield的函数被称为生成器(generator)
使用yield实现阶乘计算
def faclist(n):
result = 1
for i in range(2, n + 1):
yield result
result *= i
for i in faclist(10):
print(i, end=' ')
使用yield实现斐波那契数列
import sys
def fibonacci(n):
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return n
yield a
a, b = b, a + b
counter += 1
print()
f = fibonacci(10) # f是一个迭代器 由生成器返回生成
while True:
try:
print(next(f), end=" ")
except StopIteration:
sys.exit()