В этом руководстве мы узнаем об операторах break и continue. Операторы break и continue в Python изменяют поведение цикла во время выполнения. Рассмотрим пример, когда вы ездите на велосипеде в течение определенного периода. В какой-то момент цикл должен завершиться и перейти к следующему оператору в коде. На этом этапе оператор break работает лучше всего. Точно так же, если вы хотите, чтобы цикл пропустил одну итерацию и перешел к следующей итерации, вы должны использовать оператор continue.
1. Оператор break.
Оператор break прерывает цикл. Взгляните на пример ниже. Допустим, вы хотите напечатать список всех нечетных чисел, но вы хотите, чтобы цикл останавливался, как только число превысит 10. В этом случае вы, конечно, можете указать диапазон, но другой вариант — выйти из цикл с оператором break.
number = 1 # Инициализация
while True: # Пока истина
print(number) # Выводим цифры
number += 2 # Инкриментируем на 2
# Если число меньше 10, выходим из цикла
if number > 10:
break
# Выход
print(number) # Выводим последнее число
Результат:
> 1
> 3
> 5
> 7
> 9
В этом примере вы увидите, что операторы после разрыва не выполняются. Итак, здесь код остановится до того, как напечатает 11. Оператор break также можно использовать в цикле for. Предположим, вы печатаете слова из списка. Если слово совпадает, слово «выход» не будет напечатано, и цикл завершится. Следующий код демонстрирует эту идею.
words = ['Дождь', 'Солнце', 'Луна', 'Выход', 'Погода']
for word in words:
# проверяем слова
if word == 'Выход':
# если истина, выходим из цикла
break
# печатаем слова
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)
Результат:
> 2
is double of
1
> 4
is double of
2
> 6
is double of
3
> 8
is double of
4
> 10
is double of
5
> 12
is double of
6
> 7 is skipped
> 16
is double of
8
> 18
is double of
9
> 20
is double of
10
Давайте рассмотрим тот же пример с циклом 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
> 3
> 5
> 7
> 9
Источником послужил сайт pythonim.ru