2016-09-27 338 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