python 斐波那契数列
python 斐波那契数列#!/usr/bin/pythona, b = 0. 1while b<10:print ba, b = b, a+b执行以上程序,输出结果为:112358
·
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
更多推荐



所有评论(0)