2017-02-04 257 views
-2

我不明白爲什麼在循環變量不發生變化,但我明確地嘗試。因此,這裏是我的代碼:變量在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 
+0

應打印'2 *了'不是 – lmiguelvargasf

+0

你沒有指定新價值的任何變量。用'a = a * 2'替換'a * 2'。 –

+0

行'一* 2'被「丟失」的,它不會改變了''的價值。要做到這一點,你就需要重新分配或者'了'新值,通過做'A = A * 2'或只是打印做'打印* 2'期望值。此外,使用的是用於陣列和在第二循環中的內變量兩個變量'A'。不惜一切代價避免這種情況。 – dabadaba

回答

0

爲了迭代i何時改變a,你必須將值賦給變量。

所以不是 for a in i: a*2 print(a)

嘗試

for a in i: a = a*2 print(a)

0

因爲你不分配值的變量。它會改變,如果你做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 
>>> 
0
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)