Найти тему
МОЙ РЕПЕТИТОР

Полный гайд по циклу FOR в Python

📌ЦИКЛ FOR - НАДЁЖНЫЙ ПОМОЩНИК В РЕШЕНИИ ПОВСЕДНЕВНЫХ ЗАДАЧ

📌ЦИКЛ FOR В PYTHON — МОЩНЫЙ ИНСТРУМЕНТ, КОТОРЫЙ МОЖЕТ ЗНАЧИТЕЛЬНО УПРОСТИТЬ ЖИЗНЬ ПРОГРАММИСТА

Цикл for — это управляющая конструкция, которая выполняет определённые инструкции заданное количество раз или до тех пор, пока не будет выполнено условие.

Пример работы цикла for в Python. Многократный вывод строки на экран консоли IDLE.
Пример работы цикла for в Python. Многократный вывод строки на экран консоли IDLE.

Цикл for нужен для того, чтобы автоматизировать выполнение повторяющихся действий. С его помощью можно перебрать элементы последовательности (списка или строки) и выполнить над ними какие-либо операции. Это позволяет избежать ручного написания кода и сделать программу эффективной.

Цикл for в Python — мощный инструмент, который может значительно упростить жизнь программиста

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

Каждый элемент последовательно обрабатывается и переходит на следующий этап производства.
Каждый элемент последовательно обрабатывается и переходит на следующий этап производства.

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

С помощью цикла FOR можно перебрать элементы последовательности: списка, кортежа или строки
Две основные задачи, которые выполняет цикл for в Python.
Две основные задачи, которые выполняет цикл for в Python.

🔃Что такое ОБРАБОТКА ПОСЛЕДОВАТЕЛЬНОСТЕЙ?

Аналогия из жизни: покупка продуктов в супермаркете. Представьте, что у вас есть список продуктов, которые вам нужно купить: молоко, сыр, хлеб и фрукты. Вы можете пройтись по этому списку поочередно, беря каждый продукт из списка и помещая его в корзину.

Итак, процесс будет выглядеть следующим образом:

  1. У вас есть список продуктов: ['молоко', 'сыр', 'хлеб', 'фрукты']
  2. Вы начинаете цикл for и проходите по каждому элементу списка.
  3. Для каждого продукта в списке (первый элемент - молоко, второй - сыр и т.д.), вы берете этот продукт и помещаете его в корзину.
  4. После того как вы пройдетесь по всем элементам списка, у вас будет заполненная корзина с товарами, которые вы хотели купить.

С помощью цикла for вы можете как создавать список продуктов и заполнять корзину, так и разбирать готовую корзину с продуктами.

Вы можете пройтись по списку продуктов поочередно, беря каждый продукт из списка и помещая его в корзину.
Вы можете пройтись по списку продуктов поочередно, беря каждый продукт из списка и помещая его в корзину.

Также, данный цикл используется при работе с файлами, для чтения или записи данных.

Как записать цикл for в Python?

Инструкция, как записать цикл for в Python.
Инструкция, как записать цикл for в Python.

for — конструкция, с которой и начинается цикл.

i — переменная цикла (счётчик цикла). Можно присвоить любое имя. Принято использовать именно (i), от первой буквы слова «item», что в переводе означает «позиция».

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

В данном примере, in указывает на то, что переменная i будет последовательно принимать значения от 0 до 4, поочередно проходя элементы последовательности range(5).

Что такое RANGE?

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

Функция range() необходима для создания цикла for с повторяющимися действиями

Синтаксис функции range:

range(start, stop, step)

  • start (необязательный параметр) — начальное значение последовательности
  • stop — конечное значение последовательности (не включая его)
  • step (необязательный параметр) — шаг последовательности. По умолчанию равен 1

Функция range() хранит в себе список чисел, который начинается с первого указанного в скобках числа и заканчивается числом, на единицу меньшим второго. Поэтому range(1,4) — это 1, 2, 3

Вот несколько примеров использования функции range:

  • Создание последовательности чисел от 0 до 4 (включительно):
Пример работы цикла for. Создание последовательности чисел от 0 до 4 и вывод их на экран.
Пример работы цикла for. Создание последовательности чисел от 0 до 4 и вывод их на экран.
  • Создание последовательности чисел с шагом 2:
Создание последовательности чисел от 2 до 11, с шагом 2.
Создание последовательности чисел от 2 до 11, с шагом 2.

Рассмотрим детально параметры функции range(2, 11, 2):

[2] — начальное значение последовательности.

[11] — конечное значение последовательности (не включая его, x = 10).

[2] — шаг последовательности. При каждом шаге переменная (х) будет увеличиваться на 2. Сначала х = 2, потом х = 2 + 2 = 4, потом х = 6, х = 8 и х = 10.

  • Создание последовательности чисел от 8 до 1 (не включительно) с шагом -2:
Создание последовательности чисел от 9 до 1, с шагом -2 и последующим выводом на экран.
Создание последовательности чисел от 9 до 1, с шагом -2 и последующим выводом на экран.

Рассмотрим детально параметры функции range(8, 1, -2):

  • [8] — начальное значение последовательности
  • [1] — конечное значение последовательности (не включая его j = 2)
  • [- 2] — шаг последовательности. При каждом новом шаге переменная (j) будет уменьшаться на 2. Сначала j = 8, потом j = 8 - 2 = 6, потом j = 4 и j = 2.
Range — это встроенная функция в Python, которая генерирует последовательность чисел.
range(1,4) = 1, 2, 3

Цикл FOR со строками (str)

для перебора элементов последовательности (строки)

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

Вывод каждого символа строки на экран:

Программа, которая выводит каждый символ строки s = 'Help', на экран.
Программа, которая выводит каждый символ строки s = 'Help', на экран.

В данной программе цикл for проходит по каждому символу строки (s). Переменная (i) будет равна соответствующему символу i = H, i = e, i = l, i = p. Так как внутри цикла записана функция print(), то каждое значение переменной (i) будет выводиться на экран.

Вывод каждого индекса и символа строки на экран:

Программа, которая выводит каждый символ и индекс строки s = 'Help', на экран
Программа, которая выводит каждый символ и индекс строки s = 'Help', на экран
  • index() — служебный метод в Python, ищет в строке определённое значение (подстроку) и возвращает его позицию

Это как если бы вы искали слово в книге и отмечали, на какой странице оно находится.

Нумерация индексов в Python начинается с нуля
Код программы, который выводит индекс заданного элемента строки.
Код программы, который выводит индекс заданного элемента строки.

Вывод каждого индекса и символа строки с помощью функции range()

Программа, которая вывод каждый индекс и символ в строке 'Help'.
Программа, которая вывод каждый индекс и символ в строке 'Help'.
  • len() — встроенная функция. Определяет количество символов в строке
  • len('Help') = 4

🔃Отличие данного примера от предыдущего в обозначении индекса строки. В функцию print() передаётся дополнительный аргумент s[i] - индекс текущего элемента.

Что значит s[i] - ?

  • s — имя переменной, в данном примере это строка (s = 'Help')
  • i — переменная цикла, последовательно принимает значения от 0 до 4
  • s[i] — элемент с номером индекса (i) из строки (s)

Так как цикл for будет проходить по элементам последовательности от 0 до 4, то первое значение для i = 0. Соответственно, Python определит, что место (индекс), которое занимает символ H, равно 0. Так как данный символ стоит на первом месте. Поэтому s[H] = 0.

🔝В данном примере цикл будет запущен не по самой строке (s), а по длине строки. Поэтому, переменная (i) будет принимать значения от 0 до 4, то есть до длины строки.

❹ Вывод длины строки на экран с помощью функции len()

Программа, которая определяет длину строки и выводит результат на экран.
Программа, которая определяет длину строки и выводит результат на экран.

Цикл for для решения Задания №12 ЕГЭ

как можно использовать цикл при решении задания №12 ЕГЭ (Исполнитель Редактор)

Рассмотрим условие одного из заданий ЕГЭ №12:

К исходной строке, содержащей более 60 единиц и не содержащей других символов...

Как создать строку, содержащую более 60 единиц? Ведь, точное количество единиц не известно!

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

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

Для начала, попробуем разобраться с более простым примером:

-14

После выполнения кода, на экране появится четыре различные строки. Данный ответ удаётся получить, используя цикл for. Каждый проход цикла, в переменную (s) записывается новая строка. Благодаря операции конкатенации (склеивания строк), удаётся получить на выходе строки различной длины.

'1' * 1 = '1'

'1' * 2 = '11'

'1' * 3 = '111'

В Python операция '1' * i является операцией конкатенации (склеивания) строки, где строка '1' повторяется i-ое количество раз.

Пример создания строки, состоящей из четырёх двоек, с помощью конкатенации строк.
Пример создания строки, состоящей из четырёх двоек, с помощью конкатенации строк.

Если в команде print(s) добавить ещё и переменную (i), то можно отследить как изменяется строка в зависимости от переменной цикла.

Программа выводит подряд несколько строк, состоящих из 1 единицы, 2 единиц, 3 единиц и 4 единиц.
Программа выводит подряд несколько строк, состоящих из 1 единицы, 2 единиц, 3 единиц и 4 единиц.

Код программы, для создания строки, содержащей более 60 единиц и не содержащей других символов:

Начало кода для решения заданий №12 ЕГЭ Исполнитель редактор.
Начало кода для решения заданий №12 ЕГЭ Исполнитель редактор.

🆘Важный момент:

Внимательный читатель заметит, что в условии не указано конечное количество единиц.

К исходной строке, содержащей более 60 единиц

Какое тогда указать второе число в функции range()? Всё на интуитивном уровне. Как правило, большие числа указывать не нужно. Так как составители заданий ЕГЭ, учитывают этот момент. Ответ будет находиться где - то недалеко. Диапазон от 5 до 20 значений максимум.

range(61, 70) или range(61, 80) или range(61, 100)

Также, стоит не забывать про оператор break. В Python данный оператор используется для досрочного прерывания цикла.

Пример работы оператора break для цикла for в Python.
Пример работы оператора break для цикла for в Python.

Этот код выведет на экран числа от 0 до 3. Затем прервёт цикл, когда переменная (x) станет равна 4.

len() — встроенная функция. Определяет количество символов в строке.

Цикл for со списками (list)

используется для перебора элементов и индексов в списках (list), упрощает работу с последовательностями

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

Представьте, что у вас есть список продуктов, которые вам нужно купить: молоко, сыр, хлеб и фрукты. Вы можете пройтись по этому списку поочередно, беря каждый продукт из списка и помещая его в корзину.

Рассмотрим, как это выглядит на практике:

Код программы для вывода каждого элемента списка (product) на экран.
Код программы для вывода каждого элемента списка (product) на экран.

▶ Вывод всех элементов списка, состоящего из чисел, на экран:

Код программы для вывода каждого элемента списка (mylist) на экран.
Код программы для вывода каждого элемента списка (mylist) на экран.

▶ Вывод элементов, кратных 2, на экран.

Код программы, которая выводит элементы списка mylist, кратные 2.
Код программы, которая выводит элементы списка mylist, кратные 2.

Данная программа выводит на экран элементы списка, кратные 2.

Функция enumerate()

используется для одновременного вывода элементов и их числовых индексов из итерируемого объекта

Синтаксис:

enumerate(iter(последовательность))

Пример использования функции enumerate() со списком:

Код программы с использованием функции enumerate в Python.
Код программы с использованием функции enumerate в Python.

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

Подробное объяснение принципа работы функции enumerate со списком и циклом for.
Подробное объяснение принципа работы функции enumerate со списком и циклом for.

Функция enumerate() позволяет получить индекс (номер элемента) вместе со значением элемента из итерируемого объекта (списка).

Итерируемый объект (iterable) в программировании — это объект, который может быть повторен или пройден циклом.
Итерируемый объект - это объект, через который можно пройтись поочередно, получая доступ к его элементам.

🆕Для более подробно изучения списков (list) в Python, рекомендую ознакомится со следующей статьей:

Цикл for + оператор else

Оператор else в цикле for используется для выполнения блока кода после завершения всех итераций цикла, если цикл был завершен без использования оператора break.

Внимательно посмотрите на 2 примера:

Выполнение цикла for + надпись 'Цикл for завершён':

Код программы, с использованием цикла for и оператора else.
Код программы, с использованием цикла for и оператора else.

В первом примере после выполнения цикла for сработает оператор else. Поэтому, на экране появится надпись: 'Цикл for завершён'. Теперь внимательно посмотрите на второй пример и на результат выполнения его программы:

❷ Выполнение цикла for + отсутствие надписи 'Цикл for завершён':

В данной программе оператор (else) не сработает, так как цикл был завершён досрочно из-за оператора (break).
В данной программе оператор (else) не сработает, так как цикл был завершён досрочно из-за оператора (break).

Почему print('Цикл for завершён') не выполнил свою команду и не отобразил надпись на экране?

Цикл for завершил свою работу досрочно, благодаря оператору else. Когда переменная (i) стала равна 3, выполнилось условие для (if) и сработал оператор break.

Оператор else после цикла for работает только в том случае, если цикл for выполнен полностью, каждый его шаг, каждая итерация. Если цикл был прерван, с помощью оператора break, то конструкция else не выполнится.

🆘Важное замечание:

Стоит отметить, что речь идёт именно о связке цикла for + оператора else. Когда они располагаются на одном уровне в программе. И оператор else стоит после цикла for. В других случаях, когда else используется с оператором if и находится внутри цикла, данная связка (for + else) не работает.