Цикл for в Python: полное руководство с примерами
Цикл for в Python — это мощный инструмент для итерации по последовательностям и итерируемым объектам. В отличие от других языков программирования, где цикл for часто используется для выполнения определённого числа повторений, Python цикл for более гибкий и позволяет перебирать элементы коллекции напрямую.
Синтаксис цикла for
Основная структура цикла for выглядит следующим образом:
for элемент in последовательность:
# Блок кода, выполняемый для каждого элемента
Где:
элемент— переменная, которая принимает значение каждого элемента последовательности поочереднопоследовательность— любой итерируемый объект (список, строка, кортеж, диапазон, словарь, множество)
Итерация по списку
Самый распространённый случай использования — перебор элементов списка:
fruits = ['яблоко', 'банан', 'вишня']
for fruit in fruits:
print(fruit)
Результат:
яблоко
банан
вишня
Итерация по строке
Цикл for по строке позволяет обработать каждый символ отдельно:
word = "привет"
for letter in word:
print(letter)
Результат:
п
р
и
в
е
т
Использование функции range()
Для итерации по числам используется функция range():
for i in range(5):
print(i)
Результат:
0
1
2
3
4
Параметры функции range()
Функция range() может принимать до трёх аргументов:
range(stop)— от 0 до stop (не включая stop)range(start, stop)— от start до stop (не включая stop)range(start, stop, step)— от start до stop с шагом step
for i in range(1, 10, 2):
print(i)
Результат:
1
3
5
7
9
Вложенные циклы for
Вложенные циклы применяются для работы с многомерными структурами данных:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for row in matrix:
for element in row:
print(element, end=' ')
print()
Результат:
1 2 3
4 5 6
7 8 9
Функция enumerate()
Enumerate в Python позволяет одновременно получать индекс и значение элемента:
names = ['Алексей', 'Борис', 'Вера']
for index, name in enumerate(names):
print(f'Индекс: {index}, Имя: {name}')
Результат:
Индекс: 0, Имя: Алексей
Индекс: 1, Имя: Борис
Индекс: 2, Имя: Вера
Начальное значение индекса
Можно задать начальное значение для индекса:
for index, name in enumerate(names, start=1):
print(f'№{index}: {name}')
Цикл for с else
Особенность Python — блок else после цикла for. Он выполняется только если цикл завершился естественным образом (не был прерван break):
for i in range(5):
print(i)
else:
print("Цикл завершён без прерывания")
Если цикл прерывается:
for i in range(5):
if i == 3:
break
print(i)
else:
print("Этот текст не выведется")
Итерация по словарю
Цикл for по словарю может выполняться несколькими способами:
student = {'имя': 'Иван', 'возраст': 25, 'город': 'Москва'}
# По ключам
for key in student:
print(key)
# По значениям
for value in student.values():
print(value)
# По парам ключ-значение
for key, value in student.items():
print(f'{key}: {value}')
Управление циклом
Оператор break
Прерывает выполнение цикла:
for i in range(10):
if i == 5:
break
print(i)
Оператор continue
Пропускает текущую итерацию и переходит к следующей:
for i in range(5):
if i == 2:
continue
print(i)
Списковые включения (List Comprehensions)
Альтернатива циклу for для создания списков:
# Обычный цикл
squares = []
for i in range(5):
squares.append(i**2)
# Списковое включение
squares = [i**2 for i in range(5)]
Практические примеры
Подсчёт элементов
numbers = [1, 2, 3, 2, 1, 2]
count = 0
for num in numbers:
if num == 2:
count += 1
print(f'Количество двоек: {count}')
Сумма элементов
numbers = [10, 20, 30, 40, 50]
total = 0
for num in numbers:
total += num
print(f'Сумма: {total}')
Поиск максимального элемента
numbers = [45, 12, 78, 23, 56]
max_num = numbers[0]
for num in numbers:
if num > max_num:
max_num = num
print(f'Максимальное число: {max_num}')
Заключение
Цикл for в Python — универсальный инструмент для итерации по любым последовательностям. Он обеспечивает читаемость кода и эффективность выполнения. Понимание всех возможностей цикла for поможет писать более элегантный и производительный код на Python.