Python 在嵌套的 for 循环中计数

Python counting in nested forloops

我是 python 的新手,有一项任务是 "Use two nested for loops. Count up in the outer for loop from 0 to 9 and then at every step count back down to zero."

答案应该是这样的:

i= 0
k= 0
i= 1
k= 1
k= 0
i= 2
k= 2
k= 1
k= 0
i= 3
k= 3
k= 2
k= 1
k= 0
i= 4
k= 4
k= 3
k= 2
k= 1
k= 0
i= 5
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0
i= 6
k= 6
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0
i= 7
k= 7
k= 6
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0
i= 8
k= 8
k= 7
k= 6
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0
i= 9
k= 9
k= 8
k= 7
k= 6
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0

所以每次i向上计数时,k从i的前一个值开始向下计数。我相信我了解嵌套 forloop 的一般概念,但我不确定我的问题是在于确定 k 的范围还是在于打印 i and/or k。这是我拥有的:

for i in range(0,10):
for k in range(i+1):
    print 'i=',i,''
    print 'k=',k,''

但它没有给我我需要的东西。当我 运行 它时,k 似乎在上升,可能是因为 (i+1) 但这是我迄今为止得到的最接近的答案,而且我遇到了很多麻烦。我不是在寻找答案本身,但如果有人能指出我正确的方向,那将非常有帮助。谢谢!

您只需要第二个 for 循环向后而不是向前。现在它从 0 到 i。

语法是:

for k in range(i, -1, -1):

这从 i 开始 k,直到 k 不为 -1,在每次迭代中对其应用 -1。

所以你的完整程序是:

for i in range(0,10):
    print 'i=',i,''
    for k in range(i, -1, -1):
        print 'k=',k,''

输出:

i= 0
k= 0
i= 1
k= 1
k= 0
i= 2
k= 2
k= 1
k= 0
i= 3
k= 3
k= 2
k= 1
k= 0
i= 4
k= 4
k= 3
k= 2
k= 1
k= 0
i= 5
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0
i= 6
k= 6
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0
i= 7
k= 7
k= 6
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0
i= 8
k= 8
k= 7
k= 6
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0
i= 9
k= 9
k= 8
k= 7
k= 6
k= 5
k= 4
k= 3
k= 2
k= 1
k= 0