Python中的嵌套WHILE循环
我刚开始学习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
>>> 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
附注:我在StackOverflow上搜索了一下,发现了一些问题,但没有一个和这个很相似。我不知道这是否可以算作作业,实际的程序是不同的,困扰我的问题就是这个。
1 个回答
7
你没有在外层循环里面把 b
重置为 0,所以 b
保持着外层循环第一次运行后得到的值——4,这样内层循环就不会再执行了。
而 for
循环工作得很好,因为它们会正确地重置它们的循环控制变量;而 while
循环就比较随意,这种重置需要你自己来做,但你没有做到。