解释这段代码的目的,并逐一解释它如何实现其目的:
def mystery(n):
a,b = 0,1
while a < n:
print(a)
a,b = b,a + b
我理解前4行是什么意思: - 将下面的代码定义为mystery(n),其中n是数字 -a = 0,b = 1 - 只要a小于n,下面的代码就会运行 印刷品 我对最后一个有问题。这是指a = b和b = a + b吗?如果是这样,那么例如神秘(10)的输出与我的理论不匹配,所以我知道它的其他东西。 神秘的输出(10):
0
1
1
2
3
5
8
答案 0 :(得分:0)
答案 1 :(得分:0)
当你有a,b = b, a + b
时,你可以把它放几行:
a, b
= =
b a+b
它几乎与:
相同a = b
b = a + b
除了b = a + b
使用a
的旧值。这是因为在评估完成之前不会定义变量。顶部也是如此,除了在顶部我们并不真正需要它。我们可以说a = 0
和b = 1
并没有遇到任何意外行为,但是在a,b = b, a + b
的情况下,如果我们在定义另一个变量之前定义了一个变量,它将无法正常工作。评估需要在两个定义之前进行,否则就不对了。