Найти в Дзене
Удалёнка

Блок else в циклах

Многие теряются при виде блока else в циклах. А между тем в Python он используется не только в условных конструкциях. Рассмотрим на примере цикла for:

for i in range(1, 3):

print(i)

else:

print("loop finished normally")

# 1

# 2

# loop finished normally

Блок else выполняется, если выполняется условие выхода из цикла. Это значит, что если цикл прерывается как-то иначе, например, ключевым словом break или исключением, то блок else выполнен не будет:

for i in range(1, 4):

if i == 2:

raise Exception("error occurred")

else:

print("loop finished normally")

# Exception: error occurred

Чаще всего этим пользуются, когда ищут что-нибудь в цикле с использованием ключевого слова break:

numbers = [1, 3, 11, 5]

for number in numbers:

if number % 2 == 0:

print ("even number found")

break

else:

print ("no even numbers in the list")

# no even numbers in the list