-
Главная
-
Инструкции
-
Python
-
Операторы break, continue и pass в циклах Python 3
При работе с циклами while и for бывает необходимо выполнить принудительный выход, пропустить часть или игнорировать заданные условия. Для первых двух случаев используются операторы break и continue Python, а для игнорирования условий — инструкция pass. Давайте посмотрим на примерах, как работают эти операторы.
Инструкция 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.5
…
4.0
4.5
Выход
Как только перестает выполняться условие и x становится равным 5, программа завершает цикл. А теперь перепишем код с использованием инструкции break:
x = 0
while True:
print(x)
if x >= 4.5:
break
x += 0.5
print('Выход')
Результат тот же:
0
0.5
…
4.0
4.5
Выход
Мы точно так же присвоили x значение 0 и задали условие: пока значение x истинно (True), продолжать выводить его. Код, правда, получился немного длиннее, но бывают ситуации, когда использование оператора прерывания оправданно: например, при сложных условиях или для того, чтобы подстраховаться от создания бесконечного цикла. Уберите из кода выше две строчки:
x = 0
while True:
print(x)
x += 0.5
print('Выход')
И перед нами бесконечный вывод:
0
0.5
…
100
100.5
…
1000000
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 будет для нас маркером и сообщит о том, что здесь нужно не забыть добавить условие.
Вот и всё, надеемся, скоро break, continue и pass станут вашими верными друзьями в разработке интересных приложений. Успехов!
В этой статье вы познакомитесь с инструкциями break и continue — их еще называют инструкциями управления циклом.
Для чего нужны break и continue
Инструкции break и continue управляют циклом.
Циклы выполняют блок когда до тех пор, пока условие цикла истинно. Иногда нужно прервать выполнение целого цикла без проверки условия.
В таких случаях нам помогут инструкции break и continue.
Инструкция break
Инструкция break прерывает цикл, в котором он объявлен. После этого управление программой передается инструкции, которая находится после тела цикла.
Если инструкция break находится внутри вложенного цикла (цикл в цикле), то прерывается внутренний цикл.
Синтаксис break
break
Блок-схема break
Ниже представлен пример работы инструкции break в циклах for и while.
Пример использования break
# Пример использования break внутри цикла
for val in "строка":
if val == "о":
break
print(val)
print("Конец")
Вывод:
с
т
р
Конец
В этой программе мы итерируем строку «строка». В теле цикла мы проверяем буквы — если это «о», прерываем цикл. Как видите, в выводе напечатаны все буквы до «о». Когда переменная val принимает значение «о», цикл завершается.
Инструкция continue
Инструкция continue используется для того, чтобы пропустить оставшееся тело цикла текущей итерации. Цикл не завершается, а продолжается со следующей итерации.
Синтаксис continue
continue
Блок-схема continue
Ниже представлен пример работы инструкции continue в циклах for и while.
Пример использования continue
# Пример использования continue внутри цикла
for val in "строка":
if val == "о":
continue
print(val)
print("Конец")
Вывод:
с
т
р
к
а
Конец
Эта программа очень похожа на вышестоящий пример. Единственное отличие — break мы заменили на continue.
Мы продолжаем цикл до тех пор, пока не встретим «о» — в этот момент мы пропускаем оставшуюся часть цикла. Как видите, мы напечатали все буквы, кроме «о».
Сегодня мы узнаем об операторах continue и break в Python. Они нужны для изменения потока цикла.
Оператор continue в Python используется для перевода управления программой в начало цикла. Оператор continue пропускает оставшиеся строки кода внутри цикла и запускает следующую итерацию. В основном он используется для определенного условия внутри цикла, чтобы мы могли пропустить конкретный код для определенного условия.
Синтаксис:
#loop statements continue #the code to be skipped
Диаграмма потока
Рассмотрим следующие примеры.
Пример 1:
i = 0
while(i < 10):
i = i+1
if(i == 5):
continue
print(i)
Выход:
1 2 3 4 6 7 8 9 10
Обратите внимание на вывод приведенного выше кода, значение 5 пропущено, потому что мы предоставили условие if с помощью оператора continue в цикле while. Когда он соответствует заданному условию, тогда управление передается в начало цикла while, и оно пропускает значение 5 из кода.
Давайте посмотрим на другой пример.
Пример 2:
str = "JavaTpoint"
for i in str:
if(i == 'T'):
continue
print(i)
Выход:
J a v a p o i n t
Оператор pass
Оператор pass является нулевой операцией, поскольку при ее выполнении ничего не происходит. Он используется в тех случаях, когда оператор синтаксически необходим, но мы не хотим использовать на его месте какой-либо оператор.
Например, его можно использовать при переопределении метода родительского класса в подклассе, но не нужно указывать его конкретную реализацию в подклассе.
Pass также используется там, где код будет где-то написан, но еще не записан в программном файле.
Пример:
list = [1,2,3,4,5]
flag = 0
for i in list:
print("Current element:",i,end=" ");
if i==3:
pass
print("\nWe are inside pass block\n");
flag = 1
if flag==1:
print("\nCame out of pass\n");
flag=0
Выход:
Current element: 1 Current element: 2 Current element: 3 We are inside pass block Came out of pass Current element: 4 Current element: 5
Мы узнаем больше об операторе pass в следующем руководстве.
Оператор break в Python
Break – это ключевое слово в Python, которое используется для вывода управления программой из цикла. Оператор break разрывает циклы один за другим, т. е. в случае вложенных циклов сначала прерывает внутренний цикл, а затем переходит к внешним циклам. Другими словами, мы можем сказать, что break используется для прерывания текущего выполнения программы, и управление переходит к следующей строке после цикла.
Break обычно используется в тех случаях, когда нужно разорвать цикл для заданного условия.
Синтаксис разрыва приведен ниже.
#loop statements break;
Пример 1:
list =[1,2,3,4]
count = 1;
for i in list:
if i == 4:
print("item matched")
count = count + 1;
break
print("found at",count,"location");
Выход:
item matched found at 2 location
Пример 2:
str = "python"
for i in str:
if i == 'o':
break
print(i);
Выход:
p y t h
Пример 3: оператор break с циклом while.
i = 0;
while 1:
print(i," ",end=""),
i=i+1;
if i == 10:
break;
print("came out of while loop");
Выход:
0 1 2 3 4 5 6 7 8 9 came out of while loop
Пример 4:
n=2
while 1:
i=1;
while i<=10:
print("%d X %d = %d\n"%(n,i,n*i));
i = i+1;
choice = int(input("Do you want to continue printing the table, press 0 for no?"))
if choice == 0:
break;
n=n+1
Выход:
2 X 1 = 2 2 X 2 = 4 2 X 3 = 6 2 X 4 = 8 2 X 5 = 10 2 X 6 = 12 2 X 7 = 14 2 X 8 = 16 2 X 9 = 18 2 X 10 = 20 Do you want to continue printing the table, press 0 for no?1 3 X 1 = 3 3 X 2 = 6 3 X 3 = 9 3 X 4 = 12 3 X 5 = 15 3 X 6 = 18 3 X 7 = 21 3 X 8 = 24 3 X 9 = 27 3 X 10 = 30 Do you want to continue printing the table, press 0 for no?0

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.
Сегодня мы узнаем об операторах break и continue в Python. Эти ключевые слова используются для изменения потока цикла в Python.
Содержание
- Что делают операторы break и continue в Python?
- 1. Оператор прерывания break
- Пример
- 2. Оператор continue
- Пример работы
Операторы break и continue в Python изменяют поведение цикла во время его выполнения. Рассмотрим пример, в котором вы запускаете цикл в течение определенного периода. В определенный момент нужно, чтобы цикл завершился и перешел к следующему оператору в вашем коде.
В такой момент лучше всего работает оператор break. Точно так же, если вы хотите, чтобы цикл пропустил итерацию и перешел к следующей итерации, вы должны использовать оператор continue.
1. Оператор прерывания break
Оператор break прерывает цикл. Посмотрите на пример ниже. Допустим, вы хотите напечатать список всех нечетных чисел, но хотите, чтобы цикл остановился, как только число превысит 10.
В таком случае вы, очевидно, можете указать диапазон, но другой вариант ‒ выйти из цикла с помощью оператора break.
Пример
number = 1 #Number is initially 1
while True : #This means the loop will continue infinite time
print (number) #print the number
number+=2 #calculate next odd number
# Now give the breaking condition
if number > 10:
break;
#Breaks the loop if number is greater than ten
print (number) #This statement won't be executed
Вывод:
В данном примере вы увидите, что операторы после перерыва не выполняются. Итак, здесь код остановится перед печатью 11.
Оператор прерывания также можно использовать в цикле for. Предположим, вы печатаете слова из списка. Если какое-либо слово соответствует слову «exit» не будет напечатано, и цикл завершится. Следующий код иллюстрирует эту идею.
words = ["rain", "sun", "moon", "exit", "weather"]
for word in words:
#checking for the breaking condition
if word == "exit" :
#if the condition is true, then break the loop
break;
#Otherwise, print the word
print (word)
Вывод :
2. Оператор continue
Оператор continue используется для пропуска итерации цикла при выполнении условия.
Пример работы
Возьмем здесь пример. В приведенном ниже фрагменте кода распечатываем все числа от 1 до 10.
Но когда итерация достигает номера 7, я хочу пропустить ее и перейти к печати 8.
numbers = range(1,11)
'''
the range(a,b) function creates a list of number 1 to (b-1)
So, in this case it would generate
numbers from 1 to 10
'''
for number in numbers:
#check the skipping condition
if number == 7:
#this statement will be executed
print("7 is skipped")
continue
#this statement won't be executed
print ("This won't be printed")
#print the values
#for example:
#2 is double of 1
print (number*2),
print ("is double of"),
print (number)
Давайте рассмотрим тот же пример с циклом while.
numbers = [ 1, 2, 4, 3, 6, 5, 7, 10, 9 ]
pos = 0 #initial position is one
while pos < len(numbers):
#checking skipping condition if number is divisible by two, it is even
if numbers[pos] % 2 == 0 :
#increment the position by one
pos = pos + 1
continue
#print the odd number
print (numbers[pos])
#increment the position by one
pos = pos + 1
( 1 оценка, среднее 5 из 5 )

Помогаю в изучении Питона на примерах. Автор практических задач с детальным разбором их решений.
Back to top
Toggle table of contents sidebar
В Python есть несколько операторов, которые позволяют менять поведение
циклов по умолчанию.
Оператор break#
Оператор break позволяет досрочно прервать цикл:
-
break прерывает текущий цикл и продолжает выполнение следующих выражений
-
если используется несколько вложенных циклов, break прерывает внутренний цикл
и продолжает выполнять выражения, следующие за блоком
* break может использоваться в циклах for и while
Пример с циклом for:
In [1]: for num in range(10): ...: if num < 7: ...: print(num) ...: else: ...: break ...: 0 1 2 3 4 5 6
Пример с циклом while:
In [2]: i = 0 In [3]: while i < 10: ...: if i == 5: ...: break ...: else: ...: print(i) ...: i += 1 ...: 0 1 2 3 4
Использование break в примере с запросом пароля (файл
check_password_with_while_break.py):
username = input('Введите имя пользователя: ') password = input('Введите пароль: ') while True: if len(password) < 8: print('Пароль слишком короткий\n') elif username in password: print('Пароль содержит имя пользователя\n') else: print('Пароль для пользователя {} установлен'.format(username)) # завершает цикл while break password = input('Введите пароль еще раз: ')
Теперь можно не повторять строку
password = input('Введите пароль еще раз: ') в каждом ответвлении,
достаточно перенести ее в конец цикла.
И, как только будет введен правильный пароль, break выведет программу из
цикла while.
Оператор continue#
Оператор continue возвращает управление в начало цикла. То есть,
continue позволяет «перепрыгнуть» оставшиеся выражения в цикле и перейти
к следующей итерации.
Пример с циклом for:
In [4]: for num in range(5): ...: if num == 3: ...: continue ...: else: ...: print(num) ...: 0 1 2 4
Пример с циклом while:
In [5]: i = 0 In [6]: while i < 6: ....: i += 1 ....: if i == 3: ....: print("Пропускаем 3") ....: continue ....: print("Это никто не увидит") ....: else: ....: print("Текущее значение: ", i) ....: Текущее значение: 1 Текущее значение: 2 Пропускаем 3 Текущее значение: 4 Текущее значение: 5 Текущее значение: 6
Использование continue в примере с запросом пароля (файл
check_password_with_while_continue.py):
username = input('Введите имя пользователя: ') password = input('Введите пароль: ') password_correct = False while not password_correct: if len(password) < 8: print('Пароль слишком короткий\n') elif username in password: print('Пароль содержит имя пользователя\n') else: print('Пароль для пользователя {} установлен'.format(username)) password_correct = True continue password = input('Введите пароль еще раз: ')
Тут выход из цикла выполнятся с помощью проверки флага
password_correct. Когда был введен правильный пароль, флаг выставляется
равным True, и с помощью continue выполняется переход в начало цикла,
перескочив последнюю строку с запросом пароля.
Результат выполнения будет таким:
$ python check_password_with_while_continue.py Введите имя пользователя: nata Введите пароль: nata12 Пароль слишком короткий Введите пароль еще раз: natalksdjflsdjf Пароль содержит имя пользователя Введите пароль еще раз: asdfsujljhdflaskjdfh Пароль для пользователя nata установлен
Оператор pass#
Оператор pass ничего не делает. Фактически, это такая заглушка для
объектов.
Например, pass может помочь в ситуации, когда нужно прописать
структуру скрипта. Его можно ставить в циклах, функциях, классах. И это
не будет влиять на исполнение кода.
Пример использования pass:
In [6]: for num in range(5): ....: if num < 3: ....: pass ....: else: ....: print(num) ....: 3 4
break and continue allow you to control the flow of your loops. They’re a concept that beginners to Python tend to misunderstand, so pay careful attention.
Using break
The break statement will completely break out of the current loop, meaning it won’t run any more of the statements contained inside of it.
>>> names = ["Rose", "Max", "Nina", "Phillip"]
>>> for name in names:
... print(f"Hello, {name}")
... if name == "Nina":
... break
...
Hello, Rose
Hello, Max
Hello, Nina
break completely breaks out of the loop.
Using continue
continue works a little differently. Instead, it goes back to the start of the loop, skipping over any other statements contained within the loop.
>>> for name in names:
... if name != "Nina":
... continue
... print(f"Hello, {name}")
...
Hello, Nina
continue continues to the start of the loop
break and continue visualized
What happens when we run the code from this Python file?
# Python file names.py
names = ["Jimmy", "Rose", "Max", "Nina", "Phillip"]
for name in names:
if len(name) != 4:
continue
print(f"Hello, {name}")
if name == "Nina":
break
print("Done!")
Results
See if you can guess the results before expanding this section.
Using break and continue in nested loops.
Remember, break and continue only work for the current loop. Even though I’ve been programming Python for years, this is something that still trips me up!
>>> names = ["Rose", "Max", "Nina"]
>>> target_letter = 'x'
>>> for name in names:
... print(f"{name} in outer loop")
... for char in name:
... if char == target_letter:
... print(f"Found {name} with letter: {target_letter}")
... print("breaking out of inner loop")
... break
...
Rose in outer loop
Max in outer loop
Found Max with letter: x
breaking out of inner loop
Nina in outer loop
>>>
break in the inner loop only breaks out of the inner loop! The outer loop continues to run.
Loop Control in while loops
You can also use break and continue in while loops. One common scenario is running a loop forever, until a certain condition is met.
>>> count = 0
>>> while True:
... count += 1
... if count == 5:
... print("Count reached")
... break
...
Count reached
Be careful that your condition will eventually be met, or else your program will get stuck in an infinite loop. For production use, it’s better to use asynchronous programming.
Loops and the return statement
Just like in functions, consider the return statement the hard kill-switch of the loop.
>>> def name_length(names):
... for name in names:
... print(name)
... if name == "Nina":
... return "Found the special name"
...
>>> names = ["Max", "Nina", "Rose"]
>>> name_length(names)
Max
Nina
'Found the special name'







