Сообщить об ошибке.

Инструкции break, continue и else в циклах Python.

Поведение цикла, при использовании инструкций break, continue и else.

Заявление break, как и в C, прерывает выполнение блока for или while с выходом из него.

Операторы цикла могут иметь блок else, который выполняется, когда цикл заканчивается исчерпанием итерируемого объекта для for или когда условие становится ложным для while, но не тогда, когда цикл завершается оператором break. Это иллюстрируется следующим циклом, который ищет простые числа:

>>> for n in range(2, 10):
...     for x in range(2, n):
...         if n % x == 0:
...             print(n, 'equals', x, '*', n//x)
...             break
...     else:
...         # loop fell through without finding a factor
...         print(n, 'is a prime number')
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
>>>

Это правильный код. Посмотрите внимательно, инструкция else относится к блоку цикла for/in, а не к оператору if.

Оператор else в циклах, имеет больше общего с else в конструкциях с try, чем в конструкциях с if. В конструкциях с оператором try, else выполняется тогда, когда не поднимается исключение, и оператор цикла else выполняется тогда, когда не срабатывает break. Подробнее о конструкциях try/except/else/finally и исключениях смотри в разделе Обработка исключений.

Заявление continue, также заимствованы из C, при их применении в коде, цикл продолжается со следующей итерации:

>>> for num in range(2, 10):
...     if num % 2 == 0:
...         print("Found an even number", num)
...         continue
...     print("Found a number", num)
Found an even number 2
Found a number 3
Found an even number 4
Found a number 5
Found an even number 6
Found a number 7
Found an even number 8
Found a number 9
>>>