Python以嵌套的forloops计数

时间:2016-09-27 04:13:27

标签: python for-loop nested-loops

我是python的新手并且有一个赋值给“使用两个嵌套for循环。在外部for循环中从0到9计数,然后在每一步计数回到零。”

答案应该是这样的:

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的前一个值开始倒计时。我相信我理解嵌套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),但这是我到目前为止最接近的答案,而且我遇到了相当多的麻烦。我不是在寻找答案本身,但如果有人能指出我正确的方向,那将是非常有帮助的。谢谢!

1 个答案:

答案 0 :(得分:0)

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

这个的语法是:

import java.util.Scanner;

public class ConvertNegative {
   public static void main (String [] args) {
      int userNum = 0;

      if (userNum >= 0)
         System.out.println("Non-negative");
      else
         System.out.println("Negative; converting to 0");
         userNum = 0;
         System.out.format("Final: %d", userNum);
         System.out.println(""); 

      return;
   }
}

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

所以你的完整计划将是:

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

输出:

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