2012-01-11 84 views
1

我很抱歉,因为这可能是一个常见问题,但我认为我正在寻找一个非常具体的答案,而这在其他主题中是找不到的。基本上,我对添加数字的流程感到困惑。这里有两个类似的代码,用于计算不同的数字有没有简单的解释呢?斐波那契和非斐波纳契编码

>>> a = 0 
>>> b = 1 
>>> while b <1000: 
    print b 
     a, b = b, a+b 


1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987 

>>> a =0 
>>> b=1 
>>> while b<1000: 
     print b 
     a = b 
     b = a+b 


1,2,4,8,16,32,64,128,256,512 
+0

我把它标记为“python”给你。不要忘记指定您使用的语言和/或工具,以便其他人可以更轻松地找到您的帖子,以便将来有人在寻找相同问题的答案时可以引用它。 – jlafay 2012-01-11 20:59:50

回答

1

的区别在于值是什么时,交换

a, b = b, a+b

设置A到B,并设置到A + B,但掉期,所以它不是在同一时间相对做按顺序,即b中的变化不尊重a先被改变。

在第二个范例

a = b 

b = a+b 

的值被改变,并且第二语句尊重的第一

+0

谢谢你,你说得对。 – user1142285 2012-01-11 04:03:30

1

的变化有在交换一个优先级差异。 在第一个例子要指定: 一个= 1 B = 1

在要分配的第二个例子: 一个= 1 B = 2

为了实现相同的操作顺序作为第一个例子,你将不得不使用一个临时变量。

+0

其实你是对的。我不知道交换是内置的东西。我认为它只是简单地分配一个第一个和第二个当我键入a,b = 1,2。 – user1142285 2012-01-11 04:02:26

0

作业在第一个代码示例中同时发生,并在第二个连续发生,导致不同的答案。