a,b = 0,1
while b < 50:
print(b)
a = b
b = a+b
輸出:Python變量賦值問題
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