迭代器 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 self    def __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 sysdef fab(max):    n, a, b = 0, 0, 1    while True :        if (n > max) :            return        yield b  # 应用 yield        a, b = b, a + b        n = n + 1f = fab(10)while True:    try:        print (next(f),end=" ")    except StopIteration:        sys.exit()

对于yield:
https://www.runoob.com/w3cnot...
参考:
Python3 迭代器与生成器|菜鸟教程
Python3 函数|菜鸟教程