2014-10-03 68 views
-3

我在寫代碼的幾件和我有一些問題與下面的代碼有什麼不同?

def fanction(tata): 
    for i in range(0,4): 
     tata +i 
     print tata 

tata = 0 
fanction(tata) 

的結果是

0 
0 
0 
0 

第二條代碼:

def fbnction(tbtb): 
    for i in range(0,4): 
     print tbtb +i 

tbtb = 0 
fbnction(tbtb) 

的結果

0 
1 
2 
3 

第三個代碼:

def fcnction(tctc): 
    for i in range(0,4): 
     print tctc, tctc +i 

tctc = 0 
fcnction(tctc) 

的結果是

0 0 
0 1 
0 2 
0 3 

能有人給爲什麼請有不同的結果的,一些解釋?我認爲它會一直給我帶來同樣的結果。

+0

我沒有讓自己清楚。第三塊代碼如何增加? – 2014-10-03 14:47:26

回答

4

tata + i不改變tata。它只是返回附加值。

如果您想要更改tata,則需要分配添加的結果。

tata = tata + i 

tata += i 

>>> tata = 5 
>>> i = 2 
>>> tata + i 
7 
>>> tata # not changed 
5 
>>> tata = tata + i 
>>> tata # changed 
7 
+0

@fredtantini,謝謝你的更正。 – falsetru 2014-10-03 14:38:45

1

在你的第一件和第三件代碼塔塔+我不會塔塔的影響。因此您需要分配變量中的附加值以獲得相同的結果

tata = tata + i