python2.7使⽤⽣成器⽅式实现斐波那契数列使⽤⽣成器⽅式实现斐波那契数列
1 ⽣成器语法
python printf输出格式# 请注意下⾯的代码创建的不是⼀个列表⽽是⼀个⽣成器对象
# 通过⽣成器可以获取到数据但它不占⽤额外的空间存储数据
# 每次需要数据的时候就通过内部的运算得到数据(需要花费额外的时间)
f = (x ** 2 for x in range(1, 1000))
sizeof(f)) # 相⽐⽣成式⽣成器不占⽤存储数据的空间
print(f)
for val in f:
print(val)
除了上⾯提到的⽣成器语法,Python中还有另外⼀种定义⽣成器的⽅式,就是通过yield关键字将⼀个普通函数改造成⽣成器函数
2 ⽣成器⽅式实现斐波那契数列
斐波那契数列⼜称费⽒数列,是数学家Leonardoda Fibonacci发现的。指的是0、1、1、2、3、5、8、13、21、34、······这样的数列。即从0和1开始,第n项等于第n-1项与n-2项之和。需要注意的是0是第0项,⽽不是第⼀项。
def fib(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
yield a
"""
# 或是使⽤如下的赋值⽅式
def fib(n):
a, b = 0, 1
for _ in range(n):
n = a + b
a = b
b = n
yield a
"""
def main():
for val in fib(20):
print(val)
if __name__ == '__main__':
main()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论