Привет! Предлагаю изучить тему Цикл for в Python. На выбор два формата: видеолекция с преподавателем JavaRush университета или подробный текстовый разбор, который я подготовил специально для тебя.
Умный программист всегда найдет способ не делать работу дважды. Если он видит, что какая-то задача повторяется снова и снова, он автоматизирует процесс так, чтобы компьютер выполнил все сам. И главное - сделает это качественно с первого раза.
Именно для автоматизации повторяющихся задач и были созданы циклы. Допустим, тебе нужно показать на экране все числа от 0 до 99. Без использования циклов код выглядел бы так:
![Цикл for в Python - 1]()
print(0)
print(1)
print(2)
print(3)
print(4)
print(5)
# И так далее
Представляешь? Целых 100 строчек одинакового кода! Это же кошмар. А теперь посмотри, как элегантно решается та же задача с помощью цикла:
for i in range(100):
print(i)
Всего 2 строки — и готово!Что такое циклы for в Python?
Цикл for в Python это специальная конструкция в программировании, которая позволяет повторять один и тот же блок кода нужное количество раз. Вместо линейного выполнения программы сверху вниз, цикл заставляет код "крутиться" в одном месте. Представь жизненную ситуацию: тебе нужно накапать 30 капель настойки в стакан. Обычный алгоритм действий: 1. Взять стакан. 2. Открыть флакон. 3. Накапать 1-ю каплю. 4. Накапать 2-ю каплю. 5. ... 6. Накапать 30-ю каплю. 7. Закрыть флакон. 8. Выпить лекарство. Но ведь можно описать это намного проще: 1. Взять стакан. 2. Открыть флакон. 3. Накапать 30 капель. 4. Закрыть флакон. 5. Выпить лекарство. В повседневной речи мы постоянно используем подобные "циклы": "пройди еще 15 шагов прямо", "сделай 3 подхода по 10 приседаний", "купи 7 разных продуктов и получишь скидку"... Примеров масса, принцип всегда один и тот же. Вот и в Python цикл for служит для того, чтобы сделать код короче и понятнее.Принцип работы цикла for в Python
В Python цикл for работает с итерируемыми объектами (списки, строки, кортежи, range и др.):for <переменная> in <итерируемый_объект>:
# Тело цикла
<действия>
Пример перебора цифр от 0 до 4 и вывод каждой в консоль:
for i in range(5):
print(i)
Вывод:
0
1
2
3
4
Если перевести данную запись на человеческий язык, получится следующее: "Для каждого числа i в диапазоне от 0 до 4 включительно выведи его значение в консоль."
Основные стадии работы цикла for можно изобразить следующей схемой:
Функция range()
Функцияrange() - основной инструмент для создания числовых последовательностей в циклах:
# range(stop) - от 0 до stop-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# range(start, stop) - от start до stop-1
for i in range(2, 7):
print(i) # 2, 3, 4, 5, 6
# range(start, stop, step) - от start до stop-1 с шагом step
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8Обратный цикл (от большего к меньшему)
for i in range(5, 0, -1):
print(i)
Вывод:
5
4
3
2
1Цикл for с различными типами данных
Перебор списка
fruits = ["яблоко", "банан", "апельсин"]
for fruit in fruits:
print(fruit)
Вывод:
яблоко
банан
апельсинПеребор строки
word = "Python"
for letter in word:
print(letter)
Вывод:
P
y
t
h
o
nПеребор с индексами
Если нужны и элемент, и его индекс, используйenumerate():
fruits = ["яблоко", "банан", "апельсин"]
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
Вывод:
0: яблоко
1: банан
2: апельсинВложенные циклы
В Python также можно создавать вложенные циклы. Количество итераций будет умножаться:for i in range(3):
print(f"{i} | ", end="")
for j in range(5):
print(j, end=" ")
print() # переход на новую строку
Вывод:
0 | 0 1 2 3 4
1 | 0 1 2 3 4
2 | 0 1 2 3 4 Работа с двумерными списками
Вложенные циклы идеально подходят для обхода двумерных структур:matrix = [[0, 1, 2, 3, 4],
[1, 2, 3, 4, 5],
[2, 3, 4, 5, 6],
[3, 4, 5, 6, 7]]
for row in matrix:
for element in row:
print(element, end=" ")
print() # переход на новую строку
Или с индексами:
for i in range(len(matrix)):
for j in range(len(matrix[i])):
print(matrix[i][j], end=" ")
print()
Вывод:
0 1 2 3 4
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7 Досрочное завершение цикла
Оператор break
Для прерывания цикла используется операторbreak:
def find_first_position(string_list, element):
for i, item in enumerate(string_list):
if item == element:
print(f"Элемент найден на позиции: {i}")
break
else:
print("Элемент не найден")
# Пример использования
fruits = ["яблоко", "банан", "апельсин", "киви"]
find_first_position(fruits, "банан")
Вывод:
Элемент найден на позиции: 1Оператор continue
Операторcontinue пропускает текущую итерацию и переходит к следующей:
for i in range(10):
if i % 2 == 0: # если число четное
continue # пропускаем его
print(i) # выводим только нечетные
Вывод:
1
3
5
7
9Конструкция for-else
В Python у циклаfor есть уникальная особенность - блок else, который выполняется, если цикл завершился естественным образом (не через break):
def search_element(numbers, target):
for num in numbers:
if num == target:
print(f"Элемент {target} найден!")
break
else:
print(f"Элемент {target} не найден в списке")
# Примеры
numbers = [1, 3, 5, 7, 9]
search_element(numbers, 5) # Элемент 5 найден!
search_element(numbers, 4) # Элемент 4 не найден в спискеПолезные функции для работы с циклами
zip() - одновременный перебор нескольких последовательностей
names = ["Анна", "Борис", "Виктор"]
ages = [25, 30, 35]
cities = ["Токио", "Чикаго", "Рим"]
for name, age, city in zip(names, ages, cities):
print(f"{name}, {age} лет, живет в {city}")
Вывод:
Анна, 25 лет, живет в Токио
Борис, 30 лет, живет в Чикаго
Виктор, 35 лет, живет в Римreversed() - обратный перебор
numbers = [1, 2, 3, 4, 5]
for num in reversed(numbers):
print(num)
Вывод:
5
4
3
2
1Бесконечный цикл
В Python бесконечный цикл обычно создают с помощьюwhile True, а не for:
import itertools
# Бесконечный цикл с for (не рекомендуется)
for i in itertools.count():
print(i)
if i > 5:
break
Но помни, что в большинстве случаев бесконечный цикл — свидетельство логической ошибки. У такого цикла обязательно должно быть условие выхода.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ