Для чего используется инструкция continue в python

  • Главная

  • Инструкции

  • 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   

Диаграмма потока

Блок-схема Python continue

Рассмотрим следующие примеры.

Пример 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 может быть выполнен внутри цикла только один раз. После этого выполнение цикла будет прекращено.
Сводная таблица Python Continue vs 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 часов видеоконтента с инструкциями для начинающих. Узнайте, как создавать приложения для реального мира, и освойте основы.

Понравилась статья? Поделить с друзьями:
  • Для чего глюконат кальция в таблетках взрослым инструкция по применению
  • Для чего глицин в таблетках взрослым назначают инструкция по применению
  • Для чего борный спирт применяется инструкция по применению
  • Для чего ацетилсалициловая кислота в таблетках применение инструкция по применению взрослым
  • Для чего аспаркам в таблетках применяют взрослым инструкция по применению