Я - новичок с Python и пробующий немного программ. У меня есть что-то как следующая конструкция Цикла с условием продолжения в Python (не точный).
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 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
Но, что не так с Циклом с условием продолжения? Я предполагаю, что пропускаю некоторую очевидную вещь, но не мог разобрать.
Ответ: исправленный Цикл с условием продолжения..
>>> 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.: Найденный Так, нашел немного вопросов, но ни один как близко к этому. Не знайте, могло ли это классифицированный как домашняя работа, фактическая программа отличалась, проблема - то, что озадачивает меня.
Вы не сбрасываете b
в 0 прямо внутри внешнего цикла, поэтому b
остается на значении, которое он имел после первого этапа внешнего цикла -- 4 -- и внутренний цикл больше не выполняется.
Циклы for
работают нормально, потому что они do правильно сбрасывают свои управляющие переменные цикла; в менее структурированных циклах while
такой сброс находится в ваших руках, а вы этого не делаете.