Ключевое слово 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