a,b = 0,1
while b < 50:
print(b)
a = b
b = a+b
1
2
4
8
16
32
wheras:
a,b = 0,1
while b < 50:
print(b)
a,b = b, a+b
出力(正しいフィボナッチ数列):
1
1
2
3
5
8
13
21
34
彼らは同じではありませんか?私はa,b = b, a+b
が実質的に同じであることを意味するa = b
とb = a+b
別々に書かれて - いいえ?
AAAH大丈夫です!ありがとう。 :) – 3zzy
タプルは不変なので、タプルに入るものはすべて保存されます(読み取り専用)。 A&Bが左に割り当てられていても、右側のタプルが最初に作成されます(右から左の割り当て)。 – pokstad
「同時に」技術的に偽であるだけでなく、問題を混乱させます。要点は、割り当てが行われる前に右側の式が評価されていることです。したがって、a = a + bとa、b = b、a + bの間には実際に違いはありません。どちらの場合でも、右側の値はaの古い値と、 b。 – senderle