-
Главная
-
Инструкции
-
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
станут вашими верными друзьями в разработке интересных приложений. Успехов!
Сегодня мы узнаем об операторах 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 blockn"); flag = 1 if flag==1: print("nCame out of passn"); 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 = %dn"%(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
— их еще называют инструкциями управления циклом.
Для чего нужны 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
.
Мы продолжаем цикл до тех пор, пока не встретим «о» — в этот момент мы пропускаем оставшуюся часть цикла. Как видите, мы напечатали все буквы, кроме «о».
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
Python предоставляет нам операторы continue и break для управления выполнением программы внутри цикла for или цикла while. В этой статье обсуждается ключевое слово continue vs break в Python, чтобы понять сходства и различия между функционированием обоих этих операторов.
В следующей таблице представлены сходства и различия между операторами continue и break в Python.
Заявление о продолжении | Заявление о перерыве |
Оператор continue используется для пропуска итерации цикла for или цикла while в Python. | Оператор break используется для прекращения выполнения цикла for или цикла while в Python. |
Оператор continue может привести к бесконечному циклу при использовании цикла while, если оператор для изменения переменной цикла написан после оператора continue. | Оператор break никогда не вызывает бесконечный цикл. |
Мы не можем использовать оператор continue вне цикла for или цикла while. | Мы не можем использовать оператор break вне цикла for или цикла while. |
Оператор continue может выполняться несколько раз в цикле for или в цикле while в Python. | Оператор break может быть выполнен внутри цикла только один раз. После этого выполнение цикла будет прекращено. |
Теперь давайте обсудим все основы ключевых слов continue и break, чтобы понять все моменты, упомянутые в таблице.
Что такое ключевое слово continue в Python?
Ключевое слово continue в Python используется для пропуска выполнения операторов в циклах for или while. Всякий раз, когда интерпретатор Python встречает оператор continue, он переводит выполнение цикла на следующую итерацию. Чтобы понять это, рассмотрим следующий пример.
for i in range(10):
print(i, end=":")
if i==5:
print("Will not print the square of 5")
continue
print(i**2)
Выход:
0:0
1:1
2:4
3:9
4:16
5:Will not print the square of 5
6:36
7:49
8:64
9:81
В приведенном выше коде мы использовали цикл for для вывода чисел от 0 до 10 вместе с их квадратами. В выводе вы можете заметить, что цикл не печатает квадрат для 5. Это связано с тем, что когда i==5, выполняется оператор continue внутри блока if. Благодаря этому все оставшиеся операторы в цикле for пропускаются и выполнение переходит к следующей итерации цикла.
Продолжить ключевое слово с помощью цикла for в Python
Как обсуждалось выше, вы можете использовать ключевое слово continue с циклом for в Python, чтобы пропустить выполнение операторов в коде в определенных случаях.
Например, предположим, что у нас есть список чисел. Нам нужно вывести квадрат чисел в списке, если они кратны 10. В противном случае нам нужно вывести само число. Мы можем использовать оператор continue для выполнения этой задачи, как показано ниже.
myList=[1,2,11,12,60,13,1234,2,10,30,45,110,15]
print("The list is:")
print(myList)
print("The output is:")
for number in myList:
if number%10==0:
print(number**2)
continue
print(number)
Выход:
The list is:
[1, 2, 11, 12, 60, 13, 1234, 2, 10, 30, 45, 110, 15]
The output is:
1
2
11
12
3600
13
1234
2
100
900
45
12100
15
Ключевое слово continue с циклом while в Python
Так же, как цикл for, мы также можем использовать оператор continue с циклом while в Python. В цикле, когда интерпретатор встречает оператор continue, он пропускает следующие строки и переходит к следующей итерации цикла. Чтобы понять это, рассмотрим следующий пример.
count=0
while count<10:
count+=1
if count%3==0:
continue
print(count)
Выход:
1
2
4
5
7
8
10
В приведенном выше коде мы напечатали числа от 1 до 10, за исключением кратных 3. Всякий раз, когда мы получаем число, кратное 3, условие в операторе if становится истинным. Из-за этого оператор continue внутри блока if выполняется, а строки ниже оператора continue в цикле while пропускаются.
Предлагаемое чтение: Дзен Python, объясненный примерами
Использование оператора continue в цикле while может привести к бесконечному циклу, если мы напишем код неправильно. В предыдущем примере мы увеличили счетчик цикла перед оператором continue. Из-за этого счетчик увеличивается, даже если выполняется оператор continue.
Однако, если оператор для изменения переменной цикла написан после оператора continue, цикл будет выполняться бесконечно, поскольку оператор для изменения переменной цикла никогда не будет выполняться после выполнения оператора continue.
Чтобы понять это, рассмотрим следующий код.
count=0
while count<10:
if count%3==0:
continue
print(count)
count+=1
В приведенном выше коде, когда переменная count становится равной 3, условие внутри оператора if становится истинным. Следовательно, выполняется оператор continue. В связи с этим все последующие операторы пропускаются, а переменная цикла не изменяется. Когда цикл переходит к следующей итерации, значение переменной цикла не изменяется, и оператор continue выполняется снова. Этот процесс выполняется бесконечно, пока мы не остановим программу.
Следовательно, использование инструкции Python continue с циклом while может привести к тому, что цикл будет выполняться бесконечно, если инструкция для изменения переменной цикла написана после инструкции continue.
Также, вы не можете использовать оператор continue вне цикла for или цикла while. Если мы попытаемся использовать оператор continue вне цикла for или while, программа столкнется с исключением. Вы можете наблюдать это на следующем примере.
print("PFB")
continue
print("PythonForBeginners")
Выход:
PFB
File "/tmp/ipykernel_7853/2505494057.py", line 2
continue
^
SyntaxError: 'continue' not properly in loop
В приведенном выше коде мы использовали оператор continue между двумя операторами печати без цикла for или цикла while. Из-за этого программа сталкивается с исключением SyntaxError.
Что такое ключевое слово break в Python?
Оператор break в Python используется для остановки выполнения цикла for или while. Как только оператор break выполнен, выполнение программы выходит за пределы цикла, и выполняется следующий оператор после цикла. Вы можете наблюдать это в следующем коде.
for i in range(10):
print(i)
if i==5:
break
print("This is printed after the break statement")
Выход:
0
1
2
3
4
5
This is printed after the break statement
В приведенном выше примере вы можете видеть, что выполнение цикла for останавливается, когда переменная i становится равной 5. Это связано с тем, что оператор break выполняется, когда условие в операторе if становится истинным. В связи с этим выполнение цикла for прерывается.
Подобно циклу for, мы также можем использовать оператор break, чтобы остановить выполнение цикла while, как показано ниже.
count=0
while count<10:
count+=1
print(count)
if count==5:
break
print("This is printed after the break statement")
Выход:
1
2
3
4
5
This is printed after the break statement
Как и оператор continue, мы не можем использовать оператор break вне цикла for или цикла while. Это приведет к исключению, как показано ниже.
print("PFB")
break
print("PythonForBeginners")
Выход:
PFB
File "/tmp/ipykernel_7853/643296189.py", line 2
break
^
SyntaxError: 'break' outside loop
Заявление Python continue vs break: что следует использовать?
Мы используем оператор continue, когда нам просто нужно пропустить выполнение итерации цикла. С другой стороны, мы используем оператор break, чтобы прервать выполнение цикла for или while в Python.
Заключение
В этой статье мы обсудили основы операторов continue и break в Python. Мы также обсудили различия между операторами continue и break в Python. Чтобы узнать больше о программировании на Python, вы можете прочитать эту статью о сопоставлении панд и методе применения в Python. Вам также может понравиться эта статья о ключевом слове pass в Python.
Надеюсь, вам понравилось читать эту статью. Следите за информативными статьями.
Счастливого обучения!
Рекомендуемое обучение Python
Курс: Python 3 для начинающих
Более 15 часов видеоконтента с инструкциями для начинающих. Узнайте, как создавать приложения для реального мира, и освойте основы.