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
我是 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