2016-09-27 302 views
-1

我是python的新手,并赋予“使用两个嵌套for循环。从0到9的外循环中计数,然后在每个步骤计数回零。Python嵌套循环计数

答案应该是这样的:

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 

所以每次我计数时,K倒计时从我以前的值开始。我相信我理解嵌套forloops的一般概念,但我不确定我的问题在于确定k的范围还是打印i和/或k。这是我有:

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

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

+0

检查文档range' –

回答

0

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

的语法是这样的:

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

这在我开始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 
+0

感谢您的答复。这样做更有意义,而且更接近我所需要的,但它仍然不完全相同。在我的文章中,每当我向上计数时,k一直计数到零,所以连续有多个k,而不是每隔一行k。这是否意味着k的范围仍然是一个问题,或者我缺少我需要包含的其他东西?谢谢! – an223

+0

@ an223我的答案是要纳入你的程序并替换你的第二个循环。我已经更新了答案,向您展示了一个完整的程序,可以完成您想要的任务。 – gowrath

+0

@ an223立即检查。 – gowrath