Python: проверка на прерывание цикла

В Python у циклов while и for есть опциональный блок else, который проверяет, выполнился ли цикл полностью. Если ключевое слово break не было вызвано, будет выполнен блок else.

while… else:

numbers = [1, 3, 5]

position = 0

while position < len(numbers):
    number = numbers[position]
    if number % 2 == 0:
        print('Найдено четное число', number)
        break
    position += 1
else:
    print('Четное число не найдено')

for… else:

numbers = [1, 3, 5]

for number in numbers:
    if number % 2 == 0:
        print('Найдено четное число', number)
        break
else:
    print('Четное число не найдено')

Подобная конструкция позволяет выполнить некоторое действие при полном завершении работы с циклом (вывод сообщения здесь — явный флаг штатного завершения обхода цикла):

for name in ['Алиса', 'Боб']:
    print(name)
else:
    print('Обход цикла завершен')