42. Циклы for/else и while/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 нет ненужных конструкций, просто некоторые подходят только для определенного класса задач.