Python Glossary English

все Python 3Циклыконструкция

else в циклах

управление

Блок else у цикла выполняется, только если цикл завершился БЕЗ break. Удобен для паттерна «поиск с флагом».

Синтаксис

for/while ...:
    ...
else:
    блок_если_не_break

Ключ к пониманию — читать не «иначе», а «если не было break»: блок else отрабатывает при нормальном завершении цикла (в том числе когда цикл вообще не пошёл из-за пустого итерируемого) и пропускается только при break. Типичная ошибка — считать, что else привязан к if внутри цикла; на самом деле он относится к самому for/while.

Примеры

for i in range(2, 10):
    if 15 % i == 0:
        print(f"15 делится на {i}")  # → 15 делится на 3
        break
else:
    print("15 простое")  # не выполнится
target = 99
for x in [1, 2, 3]:
    if x == target:
        break
else:
    print("не найдено")  # → не найдено
i = 0
while i < 3:
    i += 1
else:
    print("while завершён штатно")  # → while завершён штатно

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности