有人能解释一下a
的增量或a
的值是如何在for循环中产生Fib序列的吗?
我理解(a,b=b,a+b)。但是,当调用next()时,我无法计算for循环中的增量是如何发生的。你知道吗
def fib(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
x = fib(4)
print(x.__next__())
print(x.__next__())
print(x.__next__())
print(x.__next__())
0个
1
1
二
Tags:
首先,您可以通过
next(x)
转到生成器的下一个元素。你知道吗在代码中使用print语句也可以帮助您理解。你知道吗
在这里,下一个函数缓慢地计算并输出a的值,直到您再次调用
next
。 所以在下一步的第一步中,它打印出0。当你下次再打电话时,a=1和b=1,你得到a=1。
当你下次再打电话时,a=1,b=2,你得到a=1。
当你下次再打电话时,a=2和b=3,你得到a=2。
之后,既然for循环已经完成,就不能再调用next了
相关问题 更多 >
编程相关推荐