Итерации и циклы
Нужно вывести слово по буквам — каждую на своей строке. Без цикла это шесть отдельных print: для «P», для «y», для «t» и так далее. Слово подлиннее — больше строк вручную, а если оно станет известно только во время работы программы, заранее их и не напишешь.
Цикл избавляет от этой мороки: вы описываете шаг один раз, а Python сам повторяет его для каждой буквы. Одно такое повторение называют итерацией.
Циклов в Python два: for идёт по готовому набору значений, while крутится, пока выполняется условие. Начнём с первого.
Цикл for
Строка — это последовательность символов, и for умеет пройтись по ней символ за символом:
Python 3.13message = "Python" for char in message: print(char)P y t h o n
Читается почти как по-русски: «для каждого символа char в строке message — напечатай его». Python сам берёт значения по очереди, привязывает каждое к имени char и выполняет тело с отступом. Заканчиваются значения — заканчивается цикл, следить за этим не нужно.
Так же for пройдёт по любому набору значений, а не только по строке: списки, кортежи и словари ждут нас в следующих главах, и перебирать их вы будете этим же циклом.
Итерация по диапазону чисел
Часто нам нужно выполнить цикл определенное количество раз. Для этого используется функция range():
Python 3.13# Использование range() для создания последовательности чисел for i in range(5): print(f"Число: {i}")Число: 0 Число: 1 Число: 2 Число: 3 Число: 4
Функция range() создает последовательность чисел и имеет несколько вариантов использования.
В примерах ниже используется print(..., end=" "): по умолчанию print ставит в конце перенос строки, а параметр end=" " заменяет его на пробел, чтобы значения печатались в одну строку.
Python 3.13# Варианты использования range() # range(stop): от 0 до stop-1 for i in range(3): print(i, end=" ") print()0 1 2# range(start, stop): от start до stop-1 for i in range(2, 5): print(i, end=" ") print()2 3 4# range(start, stop, step): от start до stop-1 с шагом step for i in range(1, 10, 2): # Нечетные числа от 1 до 9 print(i, end=" ")1 3 5 7 9
Цикл while
Цикл while выполняется до тех пор, пока указанное условие остается истинным. Это полезно, когда мы не знаем заранее, сколько раз должен выполниться цикл.
Синтаксис цикла while
Python 3.13count = 1 while count <= 5: print(f"Цикл выполняется в {count}-й раз") count += 1Цикл выполняется в 1-й раз Цикл выполняется в 2-й раз Цикл выполняется в 3-й раз Цикл выполняется в 4-й раз Цикл выполняется в 5-й раз
Цикл выполняется, пока истинно условие count <= 5. Внутри обязательно нужно менять переменную из условия (здесь count += 1), иначе цикл будет бесконечным.
Бесконечный цикл
Если условие в цикле while всегда истинно, цикл будет выполняться бесконечно. Это может быть полезно, но обычно требуется способ выхода из такого цикла:
Python 3.13# Пример с явным прерыванием бесконечного цикла counter = 0 while True: # Это условие всегда истинно print(f"Итерация {counter}") counter += 1 if counter >= 5: # Условие для выхода из цикла print("Выходим из цикла!") break # Прерывает выполнение циклаИтерация 0 Итерация 1 Итерация 2 Итерация 3 Итерация 4 Выходим из цикла!
Управление циклами
Python предоставляет несколько инструментов для управления выполнением циклов. Два главных — break и continue.
Оператор break
Оператор break позволяет немедленно выйти из цикла, независимо от условия:

Python 3.13# Использование break для выхода из цикла for i in range(10): print(i, end=" ") if i == 5: print("\nДостигнуто число 5, выходим из цикла!") break0 1 2 3 4 5 Достигнуто число 5, выходим из цикла!
Оператор continue
Оператор continue пропускает текущую итерацию и переходит к следующей:

Python 3.13# Использование continue для пропуска итераций for i in range(10): # Пропускаем четные числа if i % 2 == 0: continue print(i, end=" ")1 3 5 7 9
Блок else в циклах
У циклов for и while есть блок else, который выполняется при нормальном завершении цикла (не через break):
Python 3.13for i in range(5): print(i, end=" ") else: print("\nЦикл завершился без break")0 1 2 3 4 Цикл завершился без break
Фича есть, но в реальном коде её используют редко.
Вложенные циклы
Циклы можно вкладывать друг в друга для обработки многомерных структур данных или решения более сложных задач:
Python 3.13# Пример вложенных циклов - таблица умножения for i in range(1, 4): # Строки for j in range(1, 4): # Столбцы print(f"{i} × {j} = {i*j}", end="\t") print() # Переход на новую строку после каждой строки таблицы1 × 1 = 1 1 × 2 = 2 1 × 3 = 3 2 × 1 = 2 2 × 2 = 4 2 × 3 = 6 3 × 1 = 3 3 × 2 = 6 3 × 3 = 9
Проверка понимания
Давайте проверим, насколько хорошо вы усвоили тему циклов:
Какой результат даст следующий код?
Python 3.13total = 0 for i in range(1, 5): if i % 2 == 0: total += i print(total)
