python 斐波那契数列

1、普通实现

#!/usr/bin/python

a, b = 0, 1
while b<10:
	print b
	a, b = b, a+b

执行以上程序,输出结果为:

1
1
2
3
5
8

2、生成器实现

生成器
	按照一定规则不断产生新元素的对象
    无法直接输出生成器里面的内容
    生成器保存的是数据的算法/规则,每一次调用产生一个
    生成器创建使用yield关键字
        函数可以有返回值,返回值返回给调用者
        yield 跟return功能类似,
            return直接返回直观结果
            yield返回给调用者的不是直观结果,是数据存取的算法、规则
     可以使用next()函数调用生成器对象里面的内容
     也可以使用for 循环遍历生成器对象
#!/usr/bin/python3
 
import sys
 
def fibonacci(n): # 生成器函数 - 斐波那契
    a, b, counter = 0, 1, 0
    while True:
        if (counter > n): 
            return
        yield a
        a, b = b, a + b
        counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
 
while True:
    try:
        print (next(f))
    except StopIteration:
        sys.exit()

执行以上程序,输出结果如下:

0
1
1
2
3
5
8
13
21
34
55
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐