斐波拉契数列
Posted 凛冬将至
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波拉契数列相关的知识,希望对你有一定的参考价值。
生成器:斐波拉契数列
参考廖雪峰的url:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317799226173f45ce40636141b6abc8424e12b5fb27000#0
def fib(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n = n + 1 return ‘done‘
把函数改成generator后,我们基本上从来不会用next()
来获取下一个返回值,而是直接使用for
循环来迭代:>>> for n in fib(6):
... print(n)
但是用for
循环调用generator时,发现拿不到generator的return
语句的返回值。如果想要拿到返回值,必须捕获StopIteration
错误,返回值包含在StopIteration
的value
中:
>>> g = fib(6)
>>> while True:
... try:
... x = next(g)
... print(‘g:‘, x)
... except StopIteration as e:
... print(‘Generator return value:‘, e.value)
... break
...
g: 1
g: 1
g: 2
g: 3
g: 5
g: 8
Generator return value: done
以上是关于斐波拉契数列的主要内容,如果未能解决你的问题,请参考以下文章