标签:列表 end print logs ext div break [] 数列
什么是生成器
如果一个函数里面使用了yeild关键字,那么,这个函数就是一个生成器。
生成器是一种推导逻辑,调用生成器返回迭代器。
生成器的创建方法
# 改列表推导式[]为() l = [2*x for x in range(3)] print(l) # [0, 2, 4] g = (2*x for x in range(3)) print(next(g)) # 0 print(next(g)) # 2 print(next(g)) # 4 print(next(g)) # StopIteration异常 使用带有yeild关键字的函数 def f(): print(‘step 1‘) yield 1 print(‘step 2‘) yield 2 print(‘step 3‘) yield 3 g = f() print(next(g)) # step 1 1 print(next(g)) # step 2 2 print(next(g)) # step 3 3 print(next(g)) # StopIteration 异常
斐波那契数列,除了前两项,后面的一项是前面两项的和
def fib(n): a, b, counter = 0, 1, 0 while True: if counter > n: break a, b = b, a + b # print(a, end=‘ ‘) yield a counter += 1 g = fib(10) for x in g: print(x,end=‘ ‘) # 1 1 2 3 5 8 13 21 34 55 89
标签:列表 end print logs ext div break [] 数列
原文地址:http://www.cnblogs.com/lcgsmile/p/7652130.html