Есть два основных ключевых слова, которые помогают контролировать поток программ в Python: break и continue. Эти ключевые слова можно использовать в сочетании с циклами for и while, а также с операторами if, чтобы дать нам больше контроля над тем, где мы находимся в цикле.

Начнем с break, он позволяет выйти из цикла. Если бы мы хотели выйти из цикла for в какой-то момент, наш сценарий мог бы выглядеть так:

для я в диапазоне (0, 4):

if i == 2:

ломать

печать (я)

print("Завершено с i = ", str(i))

Без оператора if, включающего команду break, наш код обычно просто выводит следующий вывод:

0

1

2

3

Закончено с я = 3

Вместо этого каждый раз, когда мы проходим цикл, мы проверяем, i == 2 . Когда это True , мы выходим из цикла; это означает, что мы полностью выходим из цикла for, как только достигаем ключевого слова break. Поэтому этот код будет отображать только:

0

1

Закончено с я = 2

Обратите внимание, что мы по-прежнему отображали последнюю строку, так как она не была частью цикла. Точно так же, если бы мы были в цикле внутри другого цикла, break вырвался бы только из внутреннего цикла; внешний цикл будет продолжать работать (потенциально возвращая нас обратно во внутренний цикл).

Как и в случае с break, ключевое слово continue переходит к концу цикла; однако, вместо того, чтобы полностью выйти из цикла, continue говорит вернуться к началу цикла и продолжить со следующего элемента цикла. Например, если бы мы использовали continue вместо break в нашем последнем примере

для я в диапазоне (0, 4):

if i == 2:

Продолжать

печать (я)

print("Завершено с i = ", str(i))

- теперь мы пропускаем команду print i, когда наш оператор if имеет значение True, поэтому наш вывод включает в себя все из цикла, кроме отображения i, когда i == 2:

0

1

3

Закончено с я = 3

Циклы могут иметь свои собственные операторы else в Python. Добавление else в конец цикла гарантирует, что ваш «else-блок» всегда будет выполняться после цикла, если цикл не был прерван с помощью ключевого слова break. Например, давайте воспользуемся циклом for для просмотра каждого символа в строке в поисках буквы верхнего регистра.

«X»: фраза = «это отмечает место»

на букву во фразе:

если буква == «Х»:

ломать

еще:

print("В фразе не было "X")"

Здесь наша программа попыталась найти «X» в строковой фразе и, если бы это произошло, вышла бы из цикла for. Поскольку мы так и не вышли из цикла, мы достигли оператора else и показали, что «X» не найден. Однако, если вы попытаетесь запустить ту же программу с фразой «она отмечает место X» или какой-либо другой строкой, включающей «X», вывода вообще не будет, потому что блок кода в else не будет запущен.

Аналогично, else, помещенный после цикла while, всегда будет выполняться, если цикл while не был прерван с помощью оператора break. Например, попробуйте следующий скрипт:

попытки = 0

пока пытается ‹ 3:

пароль = ввод("Пароль: ")

если пароль == «Я❤Бибер»:

ломать

еще:

попытки = попытки + 1

еще:

print("Подозрительная активность. Власти предупреждены")

Здесь мы дали пользователю три шанса ввести правильный пароль. Если пароль совпадает, выходим из цикла. В противном случае (первый else ) мы добавляем единицу к счетчику попыток. Второй «else блок» принадлежит циклу (поэтому он имеет меньший отступ, чем первый else), и будет выполняться только в том случае, если мы не выйдем из цикла. Таким образом, когда пользователь вводит правильный пароль, мы не запускаем последнюю строку кода, но если мы выходим из цикла, потому что условие проверки больше не было истинным (т. е. пользователь пытался ввести три неверных пароля), то пришло время предупредить органы власти.

Обычно используемым ярлыком в Python является оператор +=, который является сокращением для выражения «увеличение числа на некоторую величину». Например, в нашем последнем примере кода выше вместо строки: trys = trys + 1 мы могли бы сделать то же самое (добавить 1 к trys), сказав: trys += 1 .

На самом деле, это работает и с другими базовыми операторами; -= означает «уменьшать», *= означает «умножать на», а /= означает «делить на».

Например, если бы мы хотели изменить исходное значение переменной trys на значение, умноженное на 3, мы могли бы сократить оператор, чтобы сказать: trys *=3