【问题标题】:Nested WHILE loops in PythonPython 中的嵌套 WHILE 循环
【发布时间】:2011-02-19 22:53:22
【问题描述】:

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

P.S:搜索了 SO,找到了 few questions,但没有一个与此类似。不知道能不能归类为作业,实际程序不一样,这个问题让我很困惑。

【问题讨论】:

    标签: python for-loop while-loop nested-loops


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      相关资源
      最近更新 更多