我是 python 的初学者。我正在研究一种制作斐波那契函数的类型,
def fib(n):
a=0
b=1
while a<n:
print a
a,b=b,a+b
我看到了 a,b=b,a+b 声明。所以,我认为 a=b 和 b=a+b 与 a,b=a,b+a 相同,所以我将函数更改为如下所示:
def fib(n):
a=0
b=1
while a<n:
print a
a=b
b=a+b
我认为这是正确的,但是当我执行该程序时,我得到了不同的输出。有人可以向我解释这两种类型的声明之间的区别吗?
不管怎么说,还是要谢谢你。
b, a+b
创建一个包含这两个值的元组。然后a, b = ...
解压元组并将其值分配给变量。然而,在您的代码中,您覆盖了第一个的值,因此第二行使用新值。
a, b = b, a + b
大致等于:
tmp = a
a = b
b = tmp + b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)