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 函数|菜鸟教程
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下
- 逻辑回归的理解与python示例
- python自定义封装带颜色的logging模块
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- 【读书笔记】贝叶斯原理
- 【韩语学习】(韩语随堂笔记整理)
- Python基础|Python基础 - 练习1
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)