Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Операторы break, continue и pass в циклах Python 3

44199
5 минут чтения
Средний рейтинг статьи: 4.1

При работе с циклами while и for бывает необходимо выполнить принудительный выход, пропустить часть или игнорировать заданные условия. Для первых двух случаев используются операторы break и continue Python, а для игнорирования условий — инструкция pass. Давайте посмотрим на примерах, как работают эти операторы.

Миграция в то самое облако

Перенесем вашу инфраструктуру в облако — быстро,
безопасно и с гарантией результата.

Предоставим грант до 1 000 000 ₽ на облачную
инфраструктуру и возьмем на себя весь процесс.

Оператор break

Инструкция break в языке программирования Python прерывает выполнение блока кода. Простейший пример:

    
for j in 'bananafishbones':     if j == 'f':         break     print(j)

Получаем такой вывод:

    
b a n a n a

Как только программа после нескольких итераций доходит до элемента последовательности, обозначенного буквой f, цикл (loop) прерывается, поскольку действует оператор break. Теперь рассмотрим работу этой инструкции в цикле while:

    
x = 0 while x < 5:     print(x)     x += 0.5 print('Выход')

Вывод будет следующий (приводим с сокращениями):

    
0 0.54.0 4.5 Выход

Как только перестает выполняться условие и x становится равным 5, программа завершает цикл. А теперь перепишем код с использованием инструкции break:

    
x = 0 while True:     print(x)     if x >= 4.5:         break     x += 0.5 print('Выход')

Результат тот же:

    
0 0.54.0 4.5 Выход

Мы точно так же присвоили x значение 0 и задали условие: пока значение x истинно (True), продолжать выводить его. Код, правда, получился немного длиннее, но бывают ситуации, когда использование оператора прерывания оправданно: например, при сложных условиях или для того, чтобы подстраховаться от создания бесконечного цикла. Уберите из кода выше две строчки:

    
x = 0 while True:     print(x)     x += 0.5 print('Выход')

И перед нами бесконечный вывод:

    
0 0.5100 100.51000000 1000000.5

И слово в конце (‘Выход’), таким образом, никогда не будет выведено, поскольку цикл не закончится. Поэтому при работе с последовательностями чисел использование оператора break убережет вас от сбоев в работе программ, вызываемых попаданием в бесконечный цикл.

Конструкция с else

Иногда необходимо проверить, был ли цикл исполнен до конца или выход произошел с использованием инструкции break. Для этого добавляется проверка по условию с else. Напишем программу, которая проверяет фразу на наличие запрещенных элементов:

    
word = input('Введите слово: ') for i in word:     if i == 'я':         print('Цикл был прерван, обнаружена буква я')         break else:     print('Успешное завершение, запрещенных букв не обнаружено') print('Проверка завершена')

Теперь, если пользователь введет, например, «Привет!», программа выдаст следующее:

    
Успешное завершение, запрещенных букв не обнаружено Проверка завершена

Но если во введенном слове будет буква «я», то вывод примет такой вид:

    
Цикл был прерван, обнаружена буква я Проверка завершена

Небольшое пояснение: функция input принимает значение из пользовательского ввода (выражение 'Введите слово: ' необходимо только для пользователя, для корректной программы хватило бы и такой строки: word = input ()) и присваивает его переменной word. Последняя при помощи for поэлементно (в данном случае — побуквенно) анализируется с учетом условия, вводимого if.

Оператор continue в Python

Если break дает команду на прерывание, то continue действует более гибко. Его функция заключается в пропуске определенных элементов последовательности, но без завершения цикла. Давайте напишем программу, которая «не любит» букву «я»:

    
word = input('Введите слово: ') for i in word:     if i == 'я':         continue     print(i)

Попробуйте ввести, например, «яблоко», в этом случае вывод будет таким:

    
б л о к о

Это происходит потому, что мы задали условие, по которому элемент с определенным значением (в данном случае буква «я») не выводится на экран, но благодаря тому, что мы используем инструкцию continue, цикл доходит до последней итерации и все «разрешенные» элементы выводятся на экран. Но в коде выше есть одна проблема: если пользователь введет, например, «Яблоко», программа выведет слово полностью, поскольку не учтен регистр:

    
Я б л о к о

Наиболее очевидное решение в данном случае состоит в добавлении и заглавной буквы в блок if таким образом:

    
word = input('Введите слово: ') for i in word:     if i == 'я' or i == 'Я':         continue     print(i)

Оператор pass в Python

Назначение pass — продолжение цикла независимо от наличия внешних условий. В готовом коде pass встречается нечасто, но полезен в процессе разработки и применяется в качестве «заглушки» там, где код еще не написан. Например, нам нужно не забыть добавить условие с буквой «я» из примера выше, но сам этот блок по какой-то причине мы пока не написали. Здесь для корректной работы программы и поможет заглушка pass:

    
word = input('Введите слово: ') for i in word:     if i == 'я':         pass else:     print('Цикл завершен, запрещенных букв не обнаружено') print('Проверка завершена')

Теперь программа запустится, а pass будет для нас маркером и сообщит о том, что здесь нужно не забыть добавить условие.

Выгодные цены на облако в Timeweb Cloud

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Вот и всё, надеемся, скоро break, continue и pass станут вашими верными друзьями в разработке интересных приложений. Успехов! 

44199
5 минут чтения
Средний рейтинг статьи: 4.1

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
Пока нет комментариев