python生成器

斐波那契数列的定义:如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2)

一个数列的前两项的和是第三项

 

 

用于生成一个有一定关系的序列

列表(或是元祖)生成器:

a = [x**2 for x in range(10)]
for aa in a:
print(aa)

输出结果:
0
1
4
9
16

 

使用函数定义生成器:

def odd():
print("step1")
yield 1
print("step2")
yield 3
print("step")
yield 5
o=odd()
o.__next__()
o.__next__()

# 输出结果:
step1
step2


注:一个函数的执行结束的判定是遇到return或是函数执行到函数末尾最后一行,而生成器的的执行过程和函数的执行过程不一样, 而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。创建一个生成器函数,用于生成斐波那契数列


def hehe():
a = 1
b = 1
n = 0
while n<10:
yield b
a,b =b,a+b
n+=1
print(b)
for x in hehe():
pass
输出结果:
2
3
5
8
13



posted @ 2019-02-28 10:51 石桥浪子 阅读(...) 评论(...) 编辑 收藏