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

Python 下面的代码有什么不同?,python,python-2.7,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 0 1 2 3 0 0 0 1 0 2 0 3 第二段代码: def fbnction(tbtb): for i in range(0,4): print tbtb +i tbtb = 0 fbnct

我正在写一些代码,我有一些问题

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

tata = 0
fanction(tata)
结果是

0
0
0
0
0
1
2
3
0 0
0 1
0 2
0 3
第二段代码:

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

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

tctc = 0
fcnction(tctc)  
结果是

0
0
0
0
0
1
2
3
0 0
0 1
0 2
0 3
第三段代码:

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

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

tctc = 0
fcnction(tctc)  
结果是

0
0
0
0
0
1
2
3
0 0
0 1
0 2
0 3
有人能解释一下为什么会有不同的结果吗?我想它会一直给我相同的结果。

塔塔+我不会改变塔塔。它只返回附加值

如果希望更改tata,则需要将添加的结果重新分配给tata

tata = tata + i


在你的第一段和第三段代码中,塔塔+我不会影响塔塔。因此,您需要在变量中指定附加值以获得相同的结果

tata = tata + i

我没有说清楚。为什么第三段代码是递增的?