迭代器 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 StopIteration
myclass = 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()
对于 yield:
https://www.runoob.com/w3cnot…
参考:
Python3 迭代器与生成器 | 菜鸟教程
Python3 函数 | 菜鸟教程