Вложенные Циклы с условием продолжения в Python

Я - новичок с 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.: Найденный Так, нашел немного вопросов, но ни один как близко к этому. Не знайте, могло ли это классифицированный как домашняя работа, фактическая программа отличалась, проблема - то, что озадачивает меня.

5
задан Community 23 May 2017 в 12:32
поделиться

1 ответ

Вы не сбрасываете b в 0 прямо внутри внешнего цикла, поэтому b остается на значении, которое он имел после первого этапа внешнего цикла -- 4 -- и внутренний цикл больше не выполняется.

Циклы for работают нормально, потому что они do правильно сбрасывают свои управляющие переменные цикла; в менее структурированных циклах while такой сброс находится в ваших руках, а вы этого не делаете.

7
ответ дан 14 December 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: