Python. Этап 3. Циклы и повторяющиеся действия

До этого момента программы выполняли код последовательно, строка за строкой, и могли выбирать разные ветки выполнения с помощью условий if / elif / else.

Однако на практике очень часто возникает другая задача: нужно выполнить одно и то же действие несколько раз. Например, пройтись по числам от 1 до 10, обработать каждый символ строки, проверить каждый элемент списка или повторять действие, пока выполняется некоторое условие.

Для решения таких задач в Python используются циклы.

Содержание
Python: пример цикла for с range и счётчиком повторений, а также схема повторяющихся действий для цикла while.

Что такое цикл

Цикл — это конструкция языка Python, которая позволяет многократно выполнять один и тот же блок кода.

Главная идея цикла состоит в том, что код внутри цикла выполняется не один раз, а повторяется. Каждое повторение выполняется по одному и тому же сценарию, но с разными данными или при разных значениях переменных.

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

Итерация

Итерация — это одно выполнение тела цикла, то есть один шаг цикла.

Если цикл выполнился один раз — это одна итерация. Если пять раз — это пять итераций. Если перебираются десять элементов, то будет выполнено десять итераций.

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

Пример:

for i in range(3):
print("Итерация", i)

В этом примере тело цикла выполнится три раза — по одному разу на каждую итерацию.

Тело цикла и отступы

Тело цикла — это блок кода, который повторяется на каждой итерации. Именно в теле цикла описывается, что конкретно нужно сделать при каждом повторении.

В Python тело цикла начинается после двоеточия (:) в строке с for или while и выделяется отступом. Отступы являются частью синтаксиса языка, а не просто оформлением.

Всё, что находится с отступом после цикла, относится к его телу и выполняется на каждой итерации. Код без отступа выполнится один раз, после завершения цикла.

Пример:

for i in range(3):
print("Внутри цикла")
print(«Вне цикла»)

Цикл for: перебор значений по очереди

Цикл for используется для перебора значений по очереди. Его применяют, когда нужно пройтись по числам, символам строки или элементам набора данных.

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

Пример:

for i in range(1, 6):
print(i)

Цикл for последовательно принимает значения от 1 до 5 и на каждой итерации выводит текущее число.

enumerate: когда нужен номер элемента

В базовом цикле for мы перебираем только значения элементов. Однако на практике часто требуется знать не только сам элемент, но и его номер в последовательности.

Для этого используется встроенная функция enumerate, которая позволяет одновременно получать индекс элемента и его значение.

Пример:

items = ["a", "b", "c"]

for index, value in enumerate(items):
print(index, value)

Здесь index — номер элемента, а value — сам элемент. enumerate не является отдельным типом цикла и используется только тогда, когда индекс действительно нужен.

range(): источник чисел для for

Функция range() создаёт последовательность чисел, которую удобно перебирать в цикле for.

Вызов range(5) даёт числа 0, 1, 2, 3, 4. Верхняя граница не включается, чтобы было удобно работать с количеством элементов и индексами.

Также можно использовать два аргумента:

for i in range(1, 6):
print(i)

В этом случае будут получены числа от 1 до 5.

Цикл while: повторение по условию

Цикл while выполняется до тех пор, пока условие остаётся истинным.

Перед каждой итерацией Python проверяет условие. Если оно истинно — выполняется тело цикла. Как только условие становится ложным, цикл завершается.

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

Пример корректного цикла:

i = 1

while i <= 3:
print(i)
i += 1

Цикл выполняется, пока условие i <= 3 истинно; на каждой итерации выводится значение i, после чего счётчик увеличивается, и цикл завершается, когда условие становится ложным.

Управление циклами: break и continue

Иногда требуется управлять выполнением цикла вручную.

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

Оператор continue завершает исполнение текущей итерации цикла и сразу переходит к следующей итерации. Код, расположенный ниже continue в теле цикла, в этом проходе не выполняется, но сам цикл продолжается.

Пример:

for i in range(5):
if i == 2:
continue
print(i)

В этом примере значение 2 будет пропущено, но цикл продолжит работу.

else в циклах for и while

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

Если внутри цикла срабатывает break, блок else не выполняется.

Пример:

numbers = [1, 2, 3]

for n in numbers:
if n == 5:
break
else:
print(«Число не найдено»)

В этом примере блок else выполнится, потому что цикл завершился без break.

Практические задания — Этап 3. Циклы

Задания идут в простом формате: сначала задача, затем решение и пояснение в аккордеоне.
Это помогает сначала подумать самостоятельно, а потом сравнить подход.

Задание 1. for + range(): числа от 1 до 5

Выведите числа от 1 до 5 включительно, по одному числу на строку.

Показать решение и пояснение
for i in range(1, 6):
    print(i)

Пояснение:
range(1, 6) даёт последовательность чисел 1, 2, 3, 4, 5.
На каждой итерации переменная i принимает очередное число из этой последовательности,
и print(i) выполняется снова и снова.

Задание 2. Перебор строки: вывести символы

Дана строка:

text = "Python"

Выведите каждый символ строки на отдельной строке.

Показать решение и пояснение
text = "Python"

for char in text:
    print(char)

Пояснение:
Строка — это последовательность символов. Цикл for берёт символы по одному:
сначала P, потом y, затем t и так далее.

Задание 3. while: числа от 1 до 5

Выведите числа от 1 до 5 с помощью цикла while.

Показать решение и пояснение
i = 1

while i <= 5:
    print(i)
    i += 1

Пояснение:
Условие проверяется перед каждой итерацией: пока i <= 5 — цикл работает.
Строка i += 1 увеличивает счётчик, и в какой-то момент i станет 6,
тогда условие будет ложным, и цикл завершится.

Контрпример:
Если убрать i += 1, значение i не изменится, условие будет всегда истинным,
и цикл станет бесконечным.

Задание 4. break: остановить цикл на определённом числе

Выведите числа от 1 до 10, но остановите цикл, когда число станет равным 6.
(То есть 6 печатать не нужно.)

Показать решение и пояснение
for i in range(1, 11):
    if i == 6:
        break
    print(i)

Пояснение:
Цикл идёт по числам 1..10. Когда i становится равным 6, выполняется break
это немедленно завершает цикл, даже если значения ещё остались.

Задание 5. continue: пропустить значение

Выведите числа от 1 до 5, но пропустите число 3.

Показать решение и пояснение
for i in range(1, 6):
    if i == 3:
        continue
    print(i)

Пояснение:
Когда i равно 3, выполняется continue.
Это означает: «пропустить оставшийся код на этой итерации и перейти к следующей».
Поэтому print(i) для тройки не выполняется.

Контрольные вопросы — Этап 3

Вопрос 1. Что такое итерация цикла?

Показать ответ

Ответ:
Итерация — это один шаг выполнения цикла.

Пояснение:
При каждой итерации выполняется блок кода внутри цикла для текущего значения.

Вопрос 2. В чём основное различие между циклами for и while?

Показать ответ

Ответ:
for перебирает значения из последовательности, а while выполняется, пока условие истинно.

Пояснение:
for удобен, когда заранее известно, по чему идёт перебор.
while используют, когда повторение зависит от условия, которое проверяется перед каждой итерацией.

Вопрос 3. Почему выражение range(5) не включает число 5?

Показать ответ

Ответ:
Потому что верхняя граница диапазона в range() не включается.

Пояснение:
Такой подход упрощает работу с количеством элементов и индексами, которые обычно начинаются с нуля.

Вопрос 4. Что делает оператор break в цикле?

Показать ответ

Ответ:
Оператор break немедленно завершает выполнение цикла.

Пояснение:
После выполнения break цикл прекращается, даже если значения для перебора ещё остались.

Вопрос 5. Что произойдёт, если условие в while никогда не станет ложным?

Показать ответ

Ответ:
Цикл станет бесконечным.

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

Мини-шпаргалка по циклам

Мини-шпаргалка по циклам (Этап 3)
  • Цикл — повторное выполнение одного и того же блока кода
  • Итерация — один шаг выполнения цикла
  • for — цикл для перебора последовательностей
  • while — цикл, выполняющийся пока условие истинно
  • range() — функция для создания последовательности чисел
  • break — немедленное завершение цикла
  • continue — завершает текущую итерацию и переходит к следующей

Итог

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

В Этапе 3 были разобраны два основных вида циклов — for и while, а также связанные с ними понятия итерации, тела цикла и отступов. Отдельное внимание уделено функциям range и enumerate, которые упрощают перебор чисел и элементов последовательностей, а также операторам break и continue, позволяющим управлять ходом выполнения цикла.

Освоив эти конструкции, можно писать более компактный, понятный и надёжный код, избегая дублирования логики и типичных ошибок новичков. Знание принципов работы циклов является обязательной базой для перехода к обработке коллекций, работе с файлами, автоматизации задач и дальнейшему углублению в Python.

Комментарии

Комментариев пока нет. Почему бы ’Вам не начать обсуждение?

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

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