Codebra
29 января 2026 в 18:32

Урок 36. Циклы for/else и while/else в Python

Как работают циклы while/else и for/else в Python.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по Python. Курс был написан в 2024 году и по-прежнему актуален для начинающих разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные интенсивы и задания.

Полный список уроков доступен по тегу Архивный курс по Python и на странице первого урока.

📝 Кратко
  • В предыдущем уроке разобрались с операторами break и continue, а также с циклами while и for.
  • Настало время объединить знания и изучить конструкции for/else и while/else.
  • Это те же самые циклы for и while, в которые опционально добавлен блок else.
  • Блок else в конструкции for/else будет выполнен, если цикл полностью завершил итерацию, но не будет выполнен, если цикл прерван оператором break.
  • В определенных типах задач конструкции for/else и while/else могут пригодиться.
  • Конструкция while/else аналогична рассмотренной инструкции for/else.
  • В Python нет ненужных конструкций, просто некоторые подходят только для определенного класса задач.

В предыдущем уроке вы разобрались с операторами break и continue. Еще ранее познакомились с циклами while и for. Настало время объединить знания и изучить конструкции for/else и while/else.

Вообще, это те же самые циклы for и while, в которые, опционально, добавлен блок else:

for i in range(5):
    print(i)
else:
    print('Things are good')

Казалось бы, чем этот код по функционалу отличается от этого:

for i in range(5):
    print(i)
print('Things are good')

В данном случае – ничем. В прошлом уроке мы обогатили знания новым оператором break. Давайте применим его.

Вернемся к теории. Например, если переменная i равна трем, то мы прерываем цикл:

for i in range(5):
    print(i)
    if i == 3:
        break
else:
    print('Things are good') 

Теперь вы увидите разницу между предыдущим кодом и этим:

for i in range(5):
    print(i)
    if i == 3:
        break
print('Things are good') 

То есть блок else в конструкции for/else будет выполнен, если цикл полностью завершил итерацию, но не будет выполнен, если цикл прерван оператором break. В определенных типах задач эта конструкция может пригодиться.

Конструкция while/else аналогична рассмотренной инструкции for/else.

В этом уроке еще раз рассмотрели инструкции while/else и for/else. Так же убедились, что в Python нет ненужных конструкций, просто некоторые подходят только для определенного класса задач. В следующем уроке научимся обрабатывать исключения с помощью инструкции try/except.

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу Python.