这是什么they http://docs.python.org/2/tutorial/controlflow.html have:
def fib(n):
a, b = 0, 1
while a < n:
print a,
a, b = b, a+b
这就是我所拥有的:
def fib(n):
a = 0
b = 1
while a < n:
print a
a = b
b = b+a
第一个在使用时返回正确的序列,而我的则返回 0、1、2、4、8、16、32...
我目前正在学习编程(之前没有接受过计算机科学教育),很明显,问题在于我如何定义变量。用逗号分隔变量和用换行符分隔变量有什么区别(假设这是问题)?
这是一个元组赋值:
a, b = 0, 1
您也可以将其视为
(a, b) = (0, 1)
使用值创建临时元组0
, and 1
然后解压到变量上a
and b
这也是一个元组赋值
a, b = b, a+b
同样,您可以将其视为
(a, b) = (b, a+b)
临时元组是根据以下值创建的b
and a+b
在其中任何一个更新之前。分配只会发生after临时元组已创建。
通过将其分解为单独的步骤,您正在更改代码的含义。
让我们看看这里会发生什么
a, b = 0, 1 # a=0 , b=1
a, b = b, a+b # a=1 , b=1
与之比较
a = 0 # a=0
b = 1 # a=0 , b=1
a = b # a=1 , b=1
b = b+a # a=1 , b=2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)