您的位置:首页 > 编程语言 > Python开发

python初学——生成器的理解

2018-01-18 00:31 155 查看
这里写代码片
"""生成器只有在调用时才会生成相应的数据,这种方式不同于列表生成器,列表只要设定,它的数据就已经生成"""
'''生成器的一个next函数只能一个一个打印数字,注意是一个一个按顺序,而不能倒退回去'''
'''生成器的格式如下'''

#生成器的第一种简便方式
c=(i*2 for i in range(10)) #这个生成器有一个__next__()函数
print(c.__next__())
print(c.__next__())#这种形式的生成器一次只能调用一个数据,这样可以极大的节省内存空间
#生成器的第二种方式:以函数方式制作一个生成器,以费波那契数列为例子,当然前提是你得知道费波那契数列的原理
(1)
`def fib(max):
n,a,b=0,0,1
while n<max:
print(b)#只需要将此处的print改为yield即可
a,b=b,a+b #这个地方类似一个元组(a,a+b)
n=n+1
return 'done'
fib(100)
(2)

def fib(max):
n,a,b=0,0,1
while n<max:
yield b#这样就通过函数的方式生成了一个生成器
a,b=b,a+b #这个地方类似一个元组(a,a+b)
n=n+1
return 'done'
fib=fib(100)
print(fib.__next__())
print(fib.__next__())#通过这种方式可以间断调取生成器里边的值,第一种不能间断调取

`


`

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: