在Python中保持变量值

时间:2009-02-24 08:01:22

标签: python variables loops

for i in range(0,3):
    j = 0
    print 'incrementing '
    j += 1
    print j

打印

incrementing 
1
incrementing 
1
incrementing 
1

如何保持'j'的值以便打印:

1
2
3

2 个答案:

答案 0 :(得分:16)

您不应该在循环中将j重置为零:

j = 0
for i in range(0,3):
    print 'incrementng '
    j += 1
    print j

答案 1 :(得分:-6)

如果你想把它放在一个函数中,这是一个非常脏的黑客:默认参数! 在Python中,如果默认参数是一个数组,它变为“静态”且可变,您可以通过不同的调用保持它,如下所示:

def f(j = [0]):
    j[0] += 1
    print('incrementing', j[0])

f() # prints "incrementing 1"
f() # prints "incrementing 2"
f() # prints "incrementing 3"

玩得开心!

修改

惊人的,低调的,没有任何解释,为什么这个黑客是坏的或偏离主题。 Python中的默认参数是在分析时计算的,我错了吗?我不认为我是,我只想在我的帖子上找到智能答案而不是负面点...