我正在学习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
答案 0 :(得分:1)
函数def fib( ...
返回一个列表,您可以使用for i in <return val by fib>
我猜你的主要困惑在于yield
部分。它的作用是记住过去的值(即x
和y
的val),并且下次从之前的值继续,并且只要它看到yield
,它就会添加该值({{{ 1}}这里)到返回的列表。
https://www.jeffknupp.com/blog/2013/04/07/improve-your-python-yield-and-generators-explained/
本文将清除您的所有疑虑。
干杯!