5

我是 Python 的初学者并尝试了一些程序。我在 Python 中有类似以下 WHILE 循环构造的东西(不准确)。

IDLE 2.6.4      
>>> a=0
>>> b=0
>>> while a < 4:
      a=a+1
      while b < 4:
         b=b+1
         print a, b


1 1
1 2
1 3
1 4

我期望外部循环循环通过 1、2、3 和 4。我知道我可以像这样使用 FOR 循环来做到这一点

>>> for a in range(1,5):
       for b in range(1,5):
           print a,b


1 1
1 2
.. ..
.. .. // Other lines omitted for brevity
4 4

但是,WHILE 循环有什么问题?我想我错过了一些明显的东西,但无法弄清楚。

答案: 更正的 WHILE 循环..

>>> a=0
>>> b=0
>>> while a < 4:
    a=a+1
    b=0
    while b<4:
        b=b+1
        print a,b


1 1
.. ..
.. .. // Other lines omitted for brevity
4 4

PS:搜索了SO,发现了几个问题,但没有一个接近这个。不知道这是否可以归类为作业,实际程序不同,问题是让我感到困惑。

4

1 回答 1

7

您没有b在外循环内部重置为 0,因此b保持在外循环第一段之后的值 - 4 - 并且内循环永远不会再次执行。

循环工作正常,for因为它们确实正确地重置了循环控制变量;对于结构较少的while循环,这种重置在您手中,而您并没有这样做。

于 2010-05-15T19:40:13.337 回答