python中的斐波纳契 - 有些人可以解释范围之间的斐波纳契数是如何工作的吗?

时间:2016-02-22 11:24:50

标签: python fibonacci

我正在学习python编程,我遇到了一些混乱。我发现这个代码用户通过用户输入的开始和结束编号来计算Fibonacci序列。有人可以解释这段代码的工作原理吗?

def fib(lowerbound, upperbound):
    x = 0
    y = 1
    while x <= upperbound:
        if (x >= lowerbound):
            yield x
        x, y = y, x + y

startNumber = 10
endNumber = 100
for fib_sequence in fib(startNumber, endNumber):
    print "And the next number is... %d!" % fib_sequence

1 个答案:

答案 0 :(得分:1)

函数def fib( ...返回一个列表,您可以使用for i in <return val by fib>

进行迭代

我猜你的主要困惑在于yield部分。它的作用是记住过去的值(即xy的val),并且下次从之前的值继续,并且只要它看到yield,它就会添加该值({{{ 1}}这里)到返回的列表。

https://www.jeffknupp.com/blog/2013/04/07/improve-your-python-yield-and-generators-explained/

本文将清除您的所有疑虑。

干杯!