2016-11-04 5 views
5

私の最初の日はPythonで、非常に短い例で混乱します。誰もがなぜこれらのいくつかのバージョンの間にいくつかの違いがあるかについての説明を提供できることを願っています。お願いします!Python複数の変数割り当ての混乱

V1:出力が1、1、2、3、5、8

a, b = 0, 1 
while b < 10: 
    print(b) 
    a, b = b, a+b 

V2である:出力は、第1のバージョンにおいて1、2、4、8

a, b = 0, 1 
while b < 10: 
    print(b) 
    a = b 
    b = a+b 

答えて

5

あります右手が最初に評価されるので、追加するとbは増分されていません。第二のバージョンで

a = 0 
b = 1 
a, b = 1, 1 # b is 1, and a is 0 
a = 1 
b = 1 
a, b = 1, 2 # b is 1 and a is 1 
a = 1 
b = 2 
a, b = 2, 3 # b is 2 and a is 1 

:カップルの反復のための最初のバージョンを介してステップに

、あなたはそれを追加する前に、3210はので、ここで第二のバージョンはどのようになるのです、割り当てられます。

1.

a = 0 
b = 1 
a = b # a is now 1. 
b = a + b # b is now 2, because both a and b are 1. 

2.

a = 1 
b = 2 
a = b # a is now 2. 
b = a + b # b is now 4, because both a and b are 2. 
+0

どうもありがとう、モーガン。それで、正しい表現の優先順位はまず第一歩ですね。 – Kelvin

+0

@KelvinYe正確に。 –

+0

問題はありません。喜んで助けてくれます。 –

関連する問題