我不明白爲什麼在循環變量不發生變化,但我明確地嘗試。因此,這裏是我的代碼:變量在Python的循環不改變
a=[1,2,3]
b=["a","b","c"]
d=[a,b]
for i in d:
for a in i:
a*2
print(a)
當我跑我看到:
1
2
3
a
b
c
而是預期:
2
4
6
aa
bb
cc
我不明白爲什麼在循環變量不發生變化,但我明確地嘗試。因此,這裏是我的代碼:變量在Python的循環不改變
a=[1,2,3]
b=["a","b","c"]
d=[a,b]
for i in d:
for a in i:
a*2
print(a)
當我跑我看到:
1
2
3
a
b
c
而是預期:
2
4
6
aa
bb
cc
爲了迭代i
何時改變a
,你必須將值賦給變量。
所以不是 for a in i: a*2 print(a)
嘗試
for a in i: a = a*2 print(a)
因爲你不分配值的變量。它會改變,如果你做a = a * 2,而不只是一個* 2。在Python Shell試試這個:
>>> a=[1,2,3]
>>> b=["a","b","c"]
>>> d=[a,b]
>>> for i in d:
... for a in i:
... a=a*2
... print(a)
...
2
4
6
aa
bb
cc
>>>
a=[1,2,3]
b=["a","b","c"]
d=[a,b]
for i in d:
for a in i:
a=a*2 # change this line like that
print(a)
應打印'2 *了'不是 – lmiguelvargasf
你沒有指定新價值的任何變量。用'a = a * 2'替換'a * 2'。 –
行'一* 2'被「丟失」的,它不會改變了''的價值。要做到這一點,你就需要重新分配或者'了'新值,通過做'A = A * 2'或只是打印做'打印* 2'期望值。此外,使用的是用於陣列和在第二循環中的內變量兩個變量'A'。不惜一切代價避免這種情況。 – dabadaba