2012-01-11 153 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

作業在第一個代碼示例中同時發生,並在第二個連續發生,導致不同的答案。