Как перейти к следующей итерации цикла python
Перейти к содержимому

Как перейти к следующей итерации цикла python

  • автор:

Как перейти к следующей итерации цикла python

Циклы позволяют выполнять некоторое действие в зависимости от соблюдения некоторого условия. В языке Python есть следующие типы циклов:

Цикл while

Цикл while проверяет истинность некоторого условия, и если условие истинно, то выполняет инструкции цикла. Он имеет следующее формальное определение:

while условное_выражение: инструкции

После ключевого слова while указывается условное выражение, и пока это выражение возвращает значение True , будет выполняться блок инструкций, который идет далее.

Все инструкции, которые относятся к циклу while, располагаются на последующих строках и должны иметь отступ от начала ключевого слова while.

number = 1 while number < 5: print(f"number = ") number += 1 print("Работа программы завершена")

В данном случае цикл while будет выполняться, пока переменная number меньше 5.

Сам блок цикла состоит из двух инструкций:

print(f"number = ") number += 1

Обратите внимание, что они имеют отступы от начала оператора while - в данном случае от начала строки. Благодаря этому Python может определить, что они принадлежат циклу. В самом цикле сначала выводится значение переменной number, а потом ей присваивается новое значение. .

Также обратите внимание, что последняя инструкция print("Работа программы завершена") не имеет отступов от начала строки, поэтому она не входит в цикл while.

Весь процесс цикла можно представить следующим образом:

В итоге при выполнении кода мы получим следующий консольный вывод:

number = 1 number = 2 number = 3 number = 4 Работа программы завершена

Для цикла while также можно определить дополнительный блок else , инструкции которого выполняются, когда условие равно False:

number = 1 while number < 5: print(f"number = ") number += 1 else: print(f"number = . Работа цикла завершена") print("Работа программы завершена")

То есть в данном случае сначала проверяется условие и выполняются инструкции while. Затем, когда условие становится равным False, выполняются инструкции из блока else. Обратите внимание, что инструкции из блока else также имеют отступы от начала конструкции цикла. В итоге в данном случае мы получим следующий консольный вывод:

number = 1 number = 2 number = 3 number = 4 number =5. Работа цикла завершена Работа программы завершена

Блок else может быть полезен, если условие изначально равно False, и мы можем выполнить некоторые действия по этому поводу:

number = 10 while number < 5: print(f"number = ") number += 1 else: print(f"number = . Работа цикла завершена") print("Работа программы завершена")

Цикл for

Другой тип циклов представляет конструкция for . Этот цикл пробегается по набору значений, помещает каждое значение в переменную, и затем в цикле мы можем с этой переменной производить различные действия. Формальное определение цикла for:

for переменная in набор_значений: инструкции

После ключевого слова for идет название переменной, в которую будут помещаться значения. Затем после оператора in указывается набор значений и двоеточие.

А со следующей строки располагается блок инструкций цикла, которые также должны иметь отступы от начала цикла.

При выполнении цикла Python последовательно получает все значения из набора и передает их переменную. Когда все значения из набора будут перебраны, цикл завершает свою работу.

В качестве набора значений, например, можно рассматривать строку, которая по сути представляет набор символов. Посмотрим на примере:

message = "Hello" for c in message: print(c)

В цикле определяется переменную c , после оператора in в качестве перебираемого набора указана переменная message, которая хранит строку "Hello". В итоге цикл for будет перебираеть последовательно все символы из строки message и помещать их в переменную c. Блок самого цикла состоит из одной инструкции, которая выводит значение переменной с на консоль. Консольный вывод программы:

H e l l o

Цикл for также может иметь дополнительный блок else , который выполняется после завершения цикла:

message = "Hello" for c in message: print(c) else: print(f"Последний символ: . Цикл завершен"); print("Работа программы завершена") # инструкция не имеет отступа, поэтому не относится к else

В данном случае мы получим следующий консольный вывод:

H e l l o Последний символ: o. Цикл завершен Работа программы завершена

Стоит отметить, что блок else имеет доступ ко всем переменным, которые определены в цикле for.

Вложенные циклы

Одни циклы внутри себя могут содержать другие циклы. Рассмотрим на примере вывода таблицы умножения:

i = 1 j = 1 while i < 10: while j < 10: print(i * j, end="\t") j += 1 print("\n") j = 1 i += 1

В каждой итерации внутреннего цикла на консоль будет выводится произведение чисел i и j. Затем значение переменной j увеличивается на единицу. Когда внутренний цикл закончил работу, значений переменной j сбрасывается в 1, а значение переменной i увеличивается на единицу и происходит переход к следующей итерации внешнего цикла. И все повторяется, пока переменная i не станет равна 10. Соответственно внутренний цикл сработает всего 81 раз для всех итераций внешнего цикла. В итоге мы получим следующий консольный вывод:

1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81

Подобным образом можно определять вложенные циклы for:

for c1 in "ab": for c2 in "ba": print(f"")

В данном случае внешний цикл проходит по строке "ab" и каждый символ помещает в переменную c1. Внутренний цикл проходит по строке "ba", помещает каждый символ строки в переменную c2 и выводит сочетание обоих символов на консоль. То есть в итоге мы получим все возможные сочетания символов a и b:

ab aa bb ba

Выход из цикла. break и continue

Для управления циклом мы можем использовать специальные операторы break и continue . Оператор break осуществляет выход из цикла. А оператор continue выполняет переход к следующей итерации цикла.

Оператор break может использоваться, если в цикле образуются условия, которые несовместимы с его дальнейшим выполнением. Рассмотрим следующий пример:

number = 0 while number < 5: number += 1 if number == 3 : # если number = 3, выходим из цикла break print(f"number = ")
number = 1 number = 2

В отличие от оператора break оператор continue выполняет переход к следующей итерации цикла без его завершения. Например, в предыдущем примере заменим break на continue:

number = 0 while number < 5: number += 1 if number == 3 : # если number = 3, переходим к новой итерации цикла continue print(f"number = ")

И в этом случае если значение переменной number равно 3, последующие инструкции после оператора continue не будут выполняться:

number = 1 number = 2 number = 4 number = 5

3. Операторы break и continue для управления работой цикла. Использование else в циклических алгоритмах

Из названия операторов понятно, что один из них прерывает цикл, а другой продолжает. Рассмотрим на примерах применение этих операторов для управления работой цикла.

Пример \(6\)

Предположим, что нам необходимо набрать заголовки в газету, в которых не будет какой-то конкретной буквы (литера с этой буквой потерялась, а новую ещё не успели изготовить).
План решения задачи будет таким: перебираем в цикле for введённое название статьи, и как только находим букву, литера которой утеряна, прерываем перебор. Наличие хотя бы одной такой буквы в названии делает печать заголовка невозможным.

999.png

Рис. \(1\). Пример \(6\)
Обрати внимание!
• Оператор break прерывает выполнение того цикла, в котором находится.
Пример \(6\) \((1)\)

Усовершенствуем пример так, чтобы для каждого заголовка нам не приходилось перезапускать программу. Так как количество заголовков нам неизвестно, используем цикл while. Более того, сделаем его бесконечным, а прерывание break поставим таким образом, чтобы пользователь сам решал, хочет ли он продолжать вводить заголовки или нет.

1010.png

Рис. \(2\). Пример \(6\) \((1)\)
Обрати внимание!

• Первый оператор break прерывает выполнение цикла for, так как находится в этом цикле, второй оператор break прерывает выполнение цикла while.
• Цикл for вложен в цикл while, и пока не будет выполнен внутренний цикл по перебору букв в заголовке, внешний цикл не перейдёт к следующей итерации.
• Для цикла while мы использовали логическое условие True и таким образом организовали бесконечный цикл.

Пример \(6\) \((2)\)

Программу можно ещё усовершенствовать, ведь если нам встречается утерянная литера, мы получаем комментарий о необходимости менять заголовок, а вот в противном случае комментария нет. Проанализируем, когда должен появиться комментарий «Заголовок принят». В том случае, если цикл for завершится, а не прервётся. Для такого действия в Python есть уникальная возможность использования оператора else.

1011.png

Рис. \(3\). Пример \(6\) \((2)\)
Обрати внимание!

• Заголовок «Береги жилище от пожара» не содержит утерянной литеры, то есть цикл завершается полностью, и только в этом случае работает оператор print (‘Заголовок принят’).
• Оператор else может использоваться в циклических алгоритмах for и while.

Пример \(6\) \((3)\)

Допустим, мы теряем только литеры с русскими буквами, а в заголовках могут встречаться и латинские. Разумно не проверять, а пропустить эти буквы.

1012.png

Рис. \(4\). Пример \(6\) \((3)\)
Обрати внимание!

• Оператор continue позволяет перейти к следующей итерации до того, как цикл будет закончен.
• Условие if \('A'• У буквы Е русского алфавита и у буквы E латинского алфавита, несмотря на похожие очертания, разные коды, поэтому программа не приняла второй заголовок.

Инструкции break и continue в Python

Циклы выполняют блок когда до тех пор, пока условие цикла истинно. Иногда нужно прервать выполнение целого цикла без проверки условия.

В таких случаях нам помогут инструкции 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 .

Мы продолжаем цикл до тех пор, пока не встретим «о» — в этот момент мы пропускаем оставшуюся часть цикла. Как видите, мы напечатали все буквы, кроме «о».

СodeСhick.io - простой и эффективный способ изучения программирования.

2023 © ООО "Алгоритмы и практика"

Циклы for и while, операторы break и continue, волшебное слово else

Python 3 логотип

В этой статье я расскажу о циклах for и while, операторах break и continue, а также о слове else, которое, будучи употребленное с циклом, может сделать программный код несколько более понятным.

Цикл while

While - один из самых универсальных циклов в Python, поэтому довольно медленный. Выполняет тело цикла до тех пор, пока условие цикла истинно.

Цикл for уже чуточку сложнее, чуть менее универсальный, но выполняется гораздо быстрее цикла while. Этот цикл проходится по любому итерируемому объекту (например строке или списку), и во время каждого прохода выполняет тело цикла.

Оператор continue

Оператор continue начинает следующий проход цикла, минуя оставшееся тело цикла (for или while)

Оператор break

Оператор break досрочно прерывает цикл.

Слово else, примененное в цикле for или while, проверяет, был ли произведен выход из цикла инструкцией break, или же "естественным" образом. Блок инструкций внутри else выполнится только в том случае, если выход из цикла произошел без помощи break.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *