生成器
在Python中一边循环一边计算的机制,叫做生成器生成器是特殊的迭代器,同样可以使用next()获取下一位元素。
实例1:for 循环实现
z = (x for x in range(10))
print(next(z))
print(next(z))
print(next(z))
print(next(z))
---------------------结果
0
1
2
3
---------------------
当超过了范围将会出现错误
------
print(next(z))
StopIteration
------
可以用try 语句进行捕获修正
实例2:斐波那契数列
def fbnq(num):
a = 0
b = 1
flag = 0
while flag<num:
a,b =b,a+b
flag +=1
yield a
if __name__ == '__main__':
ret = fbnq(6)
print(next(ret))
print(next(ret))
print(next(ret))
print(next(ret))
---------------------结果
1
1
2
3