与下面的代码有什么不同?

时间:2014-10-03 14:32:42

标签: python python-2.7

我正在写几段代码而且我有一些问题

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

有人可以解释为什么,请取得不同的结果吗?我以为它会一直给我相同的结果。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

在你的第一段和第三段代码中,tata + i不会影响tata。所以你需要在变量中分配添加的值才能得到相同的结果

tata = tata + i