目录:
一、笔记
二、我的自学路线
三、笔记目录
一、笔记
① 使用了yield的函数被称为生成器。
② 跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单理解生成器就是一个迭代器。
③ 在调用生成器运行的过程中,每次遇到yield时候函数暂停并保存当前所有的运行信息,返回yield的值,并在下一次从当前位置继续运行。
④ 生成器是一种特殊的迭代器,可以通过next方法调用,next(generator),或者通过for循环语句遍历,for i in generator。
⑤ 生成器是一个对象,而且是可迭代的,它保存的是算法,只有在有用的时候调用它它才会去计算,这样就节省了大量的空间。
⑥ 创建生成器的方法1:把列表生成式的 [] 改成 (),创建生成器方法2:使用yield函数创建生成器。
# 生成器用法:
def f1():
print('start')
return 3
def f2():
print('start')
a = yield 1 # 可以不用 "a = ",即使用了也不会报错
print('middle...')
b = yield 2 # yeild 2 的返回值为None,所以若打印b,则打印None
print('next')
c = yield 3
print(c) # 若有四个print(next(b)),打印c为None,由于没有第四个yield,所以报错
a = f1() # 普通函数,会进入f1
b = f2() # 生成器,不会进入f2
print(next(b)) # 才会进入f2,打印1
print(next(b)) # 才会进入f2,打印2
运行结果:
start
start
1
middle...
2
# 列表生成式
ls = [x*2 for x in range(10)]
print(type(ls))
# 生成器
generator = (x*2 for x in range(10))
print(type(generator))
运行结果:
二、我的自学路线
01 安装Python编辑器 [ 已整理 ]
02 Python编辑器快捷键 [ 已整理 ]
03 Python基础 [ 已整理 ]
04 Python难点 [ 整理ing ]
05 Python常用的库 [ 整理ing ]
06 爬虫 [ 看视频ing ]
三、笔记目录
( ……更多笔记,见专栏 )
"♥我的笔记,希望对你有帮助♥"