想请教下为什么一定要有一步 n=fib(max)的操作,next()函数才有效
Topic source连续3个:
next(fib(3)) next(fib(3)) next(fib(3))
相当于:
x = fib(3) y = fib(3) z = fib(3) next(x) next(y) next(z)
x, y, z互不影响,本来就只会输出各自的1
- 1
连续3个:
next(fib(3)) next(fib(3)) next(fib(3))
相当于:
x = fib(3) y = fib(3) z = fib(3) next(x) next(y) next(z)
x, y, z互不影响,本来就只会输出各自的1
vvvhyx
想请教下为什么,第一段输出的结果一直是1,而第二段,我多了一步赋值 n = fib(3), 就可以得到下一个结果
def fib(max): n, a, b = 0, 0, 1 while n < max: yield(b) a, b = b, a + b n += 1 return 'done'
第一段:
第二段: