for i in range(0,3):
j = 0
print 'incrementing '
j += 1
print j
打印
incrementing
1
incrementing
1
incrementing
1
如何保持'j'的值以便打印:
1
2
3
答案 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中的默认参数是在分析时计算的,我错了吗?我不认为我是,我只想在我的帖子上找到智能答案而不是负面点...