
Цикл for в Python позволяет последовательно обрабатывать элементы любого итерируемого объекта: списков, строк, словарей и диапазонов чисел. В отличие от циклов while, for гарантирует завершение итераций после прохождения всех элементов коллекции, что снижает риск бесконечных циклов.
Синтаксис цикла прост: for элемент in коллекция: и далее блок кода, который выполняется на каждом шаге. Например, for i in range(5): print(i) выведет числа от 0 до 4. Использование функции range() позволяет точно управлять началом, концом и шагом последовательности.
Цикл for поддерживает распаковку кортежей, что удобно при работе с вложенными структурами данных. Для списка кортежей data = [(1, ‘a’), (2, ‘b’)] конструкция for x, y in data: print(x, y) позволит напрямую обращаться к элементам каждой пары без дополнительных индексов.
Также for интегрируется с функциями enumerate() и zip(). enumerate() добавляет индекс к элементу, что полезно при нумерации, а zip() позволяет проходить несколько коллекций одновременно. Эти методы расширяют возможности цикла и делают код компактным и читаемым.
Перебор элементов списка с помощью for

Цикл for в Python позволяет пройти по каждому элементу списка без использования индексов вручную. Основной синтаксис выглядит так:
for элемент in список:
действие с элементом
Пример с числовым списком:
numbers = [2, 4, 6, 8, 10]
for num in numbers:
print(num * 2)
fruits = ['яблоко', 'банан', 'вишня']
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
Если требуется фильтровать элементы, можно использовать условие внутри цикла:
numbers = [1, 5, 8, 12, 15]
for num in numbers:
if num % 2 == 0:
print(num)
Цикл for подходит для перебора строк, кортежей и любых итерируемых объектов, что делает его универсальным инструментом для обработки данных в Python.
Использование range() для числовых последовательностей

Функция range() создаёт последовательность целых чисел, которую можно использовать в цикле for. Она поддерживает три аргумента: start, stop и step. Первый элемент последовательности – start (по умолчанию 0), последний элемент меньше stop, а step задаёт шаг итерации (по умолчанию 1).
Пример простого цикла от 0 до 4:
for i in range(5):
print(i)
Результат: 0, 1, 2, 3, 4
Последовательность с заданным началом и концом создаётся так:
for i in range(2, 7):
print(i)
Для изменения шага используется третий аргумент:
for i in range(1, 10, 2):
print(i)
Отрицательный шаг позволяет генерировать последовательности в обратном порядке:
for i in range(10, 0, -2):
print(i)
Функция range() поддерживает большие диапазоны, не создавая сразу весь список в памяти. Для получения списка можно использовать list(range(start, stop, step)). Это удобно при необходимости выполнять операции с массивом чисел, например, суммирование или фильтрацию.
Обход словаря и работа с ключами и значениями
В Python словарь представляет собой набор пар «ключ-значение». Цикл for позволяет последовательно обрабатывать эти пары для анализа, изменения или фильтрации данных.
Основные способы обхода словаря:
- По ключам: Используется метод
dict.keys()или прямой обход словаря.
fruits = {'яблоко': 10, 'банан': 5, 'вишня': 20}
for key in fruits:
print(key, fruits[key])
- По значениям: Метод
dict.values()позволяет работать только с данными.
for value in fruits.values():
print(value)
- По ключам и значениям одновременно: Используется
dict.items()для получения кортежей(ключ, значение).
for key, value in fruits.items():
print(f"Фрукт: {key}, количество: {value}")
Рекомендации при работе с циклом for и словарями:
- Используйте
items()для одновременного доступа к ключам и значениям – это уменьшает количество обращений к словарю. - Для фильтрации данных внутри цикла применяйте условные конструкции
if. - Если требуется изменить значения, обходите словарь по ключам, чтобы присвоить новые значения напрямую.
Пример фильтрации и изменения значений:
for key in fruits:
if fruits[key] > 10:
fruits[key] += 5
Обход словаря с циклом for обеспечивает гибкость в работе с данными, позволяя как анализировать, так и модифицировать их эффективно.
Вложенные циклы for для матриц и таблиц

В Python вложенные циклы for позволяют последовательно проходить по строкам и столбцам двумерных структур, таких как списки списков. Это удобно для обработки матриц и таблиц с фиксированной или переменной длиной.
Пример обхода матрицы 3×3:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for value in row:
print(value, end=' ')
print()
Результат выполнения:
1 2 3
4 5 6
7 8 9
Для обращения к индексам элементов используется встроенная функция range():
rows = len(matrix)
cols = len(matrix[0])
for i in range(rows):
for j in range(cols):
matrix[i][j] *= 2 # умножение каждого элемента на 2
Пример создания таблицы с числами 1–12:
table = []
num = 1
for i in range(3): # строки
row = []
for j in range(4): # столбцы
row.append(num)
num += 1
table.append(row)
for row in table:
print(row)
Использование вложенных циклов подходит для:
- Поворота матрицы (транспонирование).
- Поэлементной фильтрации или изменения значений.
- Создания таблиц с вычисляемыми значениями.
- Поиск и подсчет элементов, соответствующих условию.
Для больших таблиц стоит учитывать, что вложенные циклы увеличивают время выполнения. Оптимизация возможна с помощью генераторов списков:
matrix = [[i*j for j in range(5)] for i in range(4)]
Такой подход создает матрицу 4×5 с произведениями индексов, сокращая код и ускоряя выполнение по сравнению с классическим вложенным for.
Прерывание цикла с помощью break и continue
Оператор break завершает выполнение цикла досрочно. Его используют, когда достигнуто условие, при котором дальнейшая обработка элементов не нужна. Например, поиск первого четного числа в списке:
numbers = [1, 3, 5, 6, 7]
for num in numbers:
if num % 2 == 0:
print(f"Первое четное число: {num}")
break
numbers = [1, 2, 3, 4, 5]
for num in numbers:
if num % 2 == 0:
continue
print(num)
В сочетании с циклами for break и continue позволяют оптимизировать обработку коллекций, избегать ненужных операций и делать код компактнее. Их используют при поиске элементов, фильтрации данных и управлении вложенными циклами.
При вложенных циклах break прерывает только внутренний цикл, а continue пропускает итерацию именно того цикла, в котором находится. Например:
matrix = [[1, 2], [3, 4]]
for row in matrix:
for item in row:
if item == 2:
break # прерывает внутренний цикл
print(item)
Генерация новых списков через list comprehension
List comprehension позволяет создавать списки через компактный синтаксис, объединяя цикл и условие в одной строке. Структура: [выражение for элемент in последовательность if условие].
Пример: генерация квадратов чисел от 1 до 10.
squares = [x2 for x in range(1, 11)]
Результат: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
List comprehension можно использовать с фильтрацией элементов. Например, получить только чётные числа от 1 до 20:
evens = [x for x in range(1, 21) if x % 2 == 0]
Результат: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
Можно применять функцию к каждому элементу. Преобразование списка строк в верхний регистр:
words = ["apple", "banana", "cherry"]
upper_words = [word.upper() for word in words]
Результат: ["APPLE", "BANANA", "CHERRY"]
List comprehension поддерживает вложенные циклы. Пример: создание координатной сетки 3×3:
grid = [(x, y) for x in range(3) for y in range(3)]
Результат: [(0,0), (0,1), (0,2), (1,0), (1,1), (1,2), (2,0), (2,1), (2,2)]
Для сложных условий можно использовать тернарный оператор. Пример: заменить отрицательные числа на 0:
numbers = [-2, 5, -1, 7]
cleaned = [x if x > 0 else 0 for x in numbers]
Результат: [0, 5, 0, 7]
List comprehension ускоряет работу с данными и уменьшает объём кода по сравнению с классическим for-циклом, особенно при преобразованиях больших списков.
Итерация по строкам и символам текста
В Python строка воспринимается как последовательность символов, что позволяет использовать цикл for для пошаговой обработки каждого элемента текста. Это полезно при подсчете символов, фильтрации или изменении регистра.
Пример итерации по символам:
text = "Python"
for char in text:
print(char)
P
y
t
h
o
n
Для обхода строк многострочного текста применяют метод splitlines(), который разделяет текст на отдельные строки:
text = "Первая строка\nВторая строка\nТретья строка"
for line in text.splitlines():
print(line)
Результат:
Первая строка
Вторая строка
Третья строка
Комбинированная итерация позволяет обрабатывать строки и символы одновременно:
text = "abc\ndef"
for line in text.splitlines():
for char in line:
print(char, end=" ")
print()
a b c
d e f
Для анализа текста удобно использовать таблицу с примером операций над символами:
| Операция | Пример | Результат |
|---|---|---|
| Проверка на цифру | char.isdigit() |
True, если символ – цифра |
| Проверка на букву | char.isalpha() |
True, если символ – буква |
| Проверка на пробел | char.isspace() |
True, если символ – пробельный |
| Преобразование регистра | char.upper() / char.lower() |
Символ в верхнем / нижнем регистре |
Использование for с методами строк обеспечивает точный контроль над содержимым текста и позволяет реализовать фильтры, подсчет и преобразование данных без создания промежуточных структур.
Совмещение цикла for с функциями и методами

Цикл for эффективно работает с функциями, позволяя применять одну и ту же операцию к каждому элементу коллекции. Например, можно использовать встроенную функцию len() для вычисления длины строк в списке:
Пример:
names = [«Анна», «Борис», «Виктор»]
for name in names:
print(len(name))
Методы объектов также удобно использовать внутри цикла. Например, метод upper() строк позволяет преобразовать каждый элемент списка в верхний регистр:
Пример:
fruits = [«яблоко», «банан», «вишня»]
for fruit in fruits:
print(fruit.upper())
Можно комбинировать пользовательские функции с циклом for для сложной обработки данных. Например, функция для проверки, является ли число чётным:
Пример:
def is_even(n):
return n % 2 == 0
numbers = [10, 15, 22, 33]
for number in numbers:
if is_even(number):
print(f»{number} чётное»)
Цикл for может использоваться совместно с методами списков, такими как append() или extend(), для формирования новых коллекций на лету:
Пример:
original = [1, 2, 3]
squared = []
for value in original:
squared.append(value 2)
print(squared)
Использование функций и методов внутри for повышает читаемость кода и упрощает масштабирование операций над элементами коллекций. Рекомендуется применять отдельные функции для повторяющихся действий, чтобы цикл оставался компактным и легко модифицируемым.
Вопрос-ответ:
Что такое цикл for в Python и для чего его используют?
Цикл for в Python позволяет многократно выполнять блок кода для каждого элемента последовательности, такой как список, строка или диапазон чисел. С его помощью можно перебирать данные поэлементно, что удобно при обработке коллекций, вычислениях и выводе информации.
Можно ли использовать цикл for с числовым диапазоном?
Да, для этого удобно использовать функцию range(). Она создаёт последовательность чисел, по которой можно пройтись циклом. Например, for i in range(5): print(i) выведет числа от 0 до 4. Также range() можно настроить, указав начальное значение, конечное и шаг, например: range(2, 10, 2) даст 2, 4, 6, 8.
Как в Python можно использовать цикл for для перебора элементов списка?
Цикл for позволяет пройтись по каждому элементу списка и выполнить действия с каждым из них. Например, если у вас есть список чисел numbers = [1, 2, 3, 4], можно написать: for n in numbers: print(n * 2). Это выведет на экран удвоенные значения элементов списка: 2, 4, 6, 8. Цикл for в Python автоматически берёт элементы по очереди, поэтому нет необходимости использовать индекс, хотя при необходимости можно применять функцию enumerate() для получения индекса вместе с элементом.
