Python自学笔记--迭代器与生成器、yield、函数

迭代器 iter() 和 next()方法

list=[1,2,3,4] it = iter(list)# 创建迭代器对象for x in it:# print (next(it)) 输出迭代器的下一个元素 print (x, end=" ") 或 while True: try: print (next(it)) except StopIteration: sys.exit()

▲注:StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 __next__() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。
在 20 次迭代后 触发 StopIteration 异常来结束迭代
class MyNumbers: def __iter__(self): self.a = 1 return selfdef __next__(self): if self.a <= 20: x = self.a self.a += 1 return x else: raise StopIterationmyclass = MyNumbers() myiter = iter(myclass)for x in myiter: print(x)

Python 定义函数使用 def 关键字,一般格式如下:
def 函数名(参数列表): 函数体

使用带有 yield 的函数实现斐波那契数列
import sys def fab(max): n, a, b = 0, 0, 1 while True : if (n > max) : return yield b# 使用 yield a, b = b, a + b n = n + 1 f = fab(10) while True: try: print (next(f),end=" ") except StopIteration: sys.exit()

【Python自学笔记--迭代器与生成器、yield、函数】关于yield:
https://www.runoob.com/w3cnot...
参考:
Python3 迭代器与生成器|菜鸟教程
Python3 函数|菜鸟教程

    推荐阅读