Операторы цикла
Цикл for, также называемый циклом с параметром, в языке Питон богат возможностями. В цикле for указывается переменная и множество значений, по которому будет пробегать переменная. Множество значений может быть задано списком, кортежем, строкой или диапазоном.
Вот простейший пример использования цикла, где в качестве множества значений используется кортеж:
i = 1
for color in 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet':
print(i,'-th color of rainbow is ', color, sep = '')
i += 1
В этом примере переменная color последовательно принимает значения ‘red’, ‘orange’ и т.д. В теле цикла выводится сообщение, которое содержит название цвета, то есть значение переменной color, а также номер итерации цикла число, которое сначала равно 1, а потом увеличивается на один (инструкцией i += 1 с каждым проходом цикла.
В списке значений могут быть выражения различных типов, например:
for i in 1, 2, 3, 'one', 'two', 'three':
print(i)
При первых трех итерациях цикла переменная i будет принимать значение типа int, при последующих трех — типа str.
Что такое for в Python?
Циклы позволяют выполнять код несколько раз подряд. Это особенно полезно при работе с массивами. В языке Python циклы немного отличаются по своему виду от циклов в других языках.
Для создания цикла for необходимо прописать ключевое слово for и далее прописать условие. В отличии от цикла while, цикл for более удобен для работы с массивами, так как сразу позволяет перебрать все элементы внутри него. Пример создания цикла for:
for j in 'hello world': if j == 'U': break
Также можно добавить действие, если цикл не сработает ни разу. К примеру, если в примере выше не будет найдена буква U, то цикл ни разу не сработает, поэтому можно добавить обработчик, который выполниться:
for j in 'hello world': if j == 'U': break else: print ("Буквы U нет в слове")
Цикл for в Python
Цикл for в Python используется для перебора последовательностей (списков, кортежей, строк) и других итерируемых объектов. Перебор последовательности называется обходом.
Синтаксис цикла
for значение in последовательность:
Тело цикла for
Цикл продолжается до тех пор, пока мы не достигнем последнего элемента последовательности. Тело цикла for является отдельным блоком кода и отделяется отступом.
Блок-схема цикла
Пример цикла
# Программа находит сумму элементов последовательности # Список чисел numbers = [6, 5, 3, 8, 4, 2, 5, 4, 11] # Переменная, в которой хранится сумма sum = 0 # Итерация цикла for value in numbers: sum = sum+value print("Сумма равна", sum)
Вывод:
Сумма равна 48
Функция range()
С помощью функции range() мы можем сгенерировать последовательность чисел. range(10) , к примеру, сгенерирует числа от 0 до 9 (всего 10 чисел).
Мы также можем определить начало, конец и размер шага — range(начало, конец, размер_шага) . Если не указать шаг (размер_шага), то по умолчанию он будет равен 1.
Объект range в некотором смысле «ленивый». Когда мы вызываем этот объект, он не генерирует все числа, которые он «содержит». Но это и не итератор — он поддерживает операции in , len и __getitem__ .
Эта функция не хранит все значения в памяти — это неэффективно. Для нее важны лишь начало, конец и размер шага — генерация следующего числа происходит на ходу.
Для вывода всех элементов следует воспользоваться функцией list() .
Наглядный пример
print(range(10)) print(list(range(10))) print(list(range(2, 8))) print(list(range(2, 20, 3)))
Вывод:
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 4, 5, 6, 7]
[2, 5, 8, 11, 14, 17]
Функцию range() можно использовать для перебора последовательности чисел в цикле for . Индексация реализуется при комбинации с функцией len() . Пример:
# Программа для итерации списка с использованием индексации genre = ['поп', 'рок', 'джаз'] # проходимся по циклу, используя индекс i for i in range(len(genre)): print("Мне нравится", genre[i])
Вывод:
Мне нравится поп
Мне нравится рок
Мне нравится джаз
Цикл for с блоком else
В цикле for может быть дополнительный блок else . Блок else выполняется, если элементы последовательности закончились.
Для остановки цикла for используется ключевое слово break . В этом случае выполнение цикла останавливается.
Следовательно, блок else выполняется только в том случае, если выполнение цикла не было прервано оператором break.
Наглядный пример
digits = [0, 1, 5] for i in digits: print(i) else: print("Элементов в списке не осталось.")
Вывод:
0
1
5
Элементов в списке не осталось.
В этом примере цикл for печатает элементы списка до тех пор, пока он не закончится. После завершения цикла выполняется блок else , который печатает сообщение Элементов в списке не осталось .
Оператор for. else можно использовать так: блок else выполнится только в том случае, если не выполнится оператор break .
Пример
# Программа выводит на экран оценку студента student_name = 'Артем' marks = for student in marks: if student == student_name: print(marks[student]) break else: print('Студент не найден.')
Вывод:
Как работает цикл for в Python
Цикл for используют, когда количество повторов известно заранее.

Анастасия Хамидулина
Автор статьи
14 апреля 2022 в 17:57
В быту нам часто приходится выполнять повторяющиеся действия. Например, чтобы повесить постиранное белье, нужно доставать и развешивать каждую вещь. В программировании такие повторяющиеся задачи упрощают. Чтобы писать один и тот же код снова и снова, используют циклы.
Итерации
Итерация — это повтор какого-либо действия. То есть один шаг цикла. Например, цикл из пяти повторений — пять итераций.
Итератор — это интерфейс, который позволяет получить следующий объект последовательности.
Итерируемые объекты — это объекты, которые можно повторять.
В Python проводят итерации только по тем объектам, которые реализуют интерфейс итератора. Это значит, что объект должен переопределять и реализовывать методы __iter__ и __next__.
Метод __iter__ возвращает self — ссылку на экземпляр. С помощью __next__ получают следующий элемент последовательности.

Схема работы цикла for
Непрофессионалу сложно разобраться в этих значениях. Но если нравится программирование и хотите его изучать, приходите на курс «Python-разработчик». Вы не только поймете все тонкости работы, но и выполните типовые проекты разработчика, добавите их в портфолио и получите диплом установленного образца. А еще вас ждут консультации центра карьеры, которые помогут быстро найти хорошее место работы.
Виды циклов
В Python есть два вида циклов: for и while.
Цикл for позволяет проводить итерации — реализовывать набор инструкций нужное количество раз. Его используют, когда количество итераций известно заранее, поэтому второе название цикла — c предусловием.
Цикл while — выполнять инструкции до тех пор, пока проверка во главе цикла будет истинной. Его используют, когда заранее не знают количества итераций, поэтому еще его называют циклом с проверкой условия.
int i = 0 while i < 10: print(“Hello, World!”) i++
Синтаксис цикла for
Он выглядит так:
Как работать с циклом for в Python
Цикл for работает со встроенными типами данных. Например, строки, списки, множества, кортежи, словари и даже файлы.
Всему этому научитесь на первом модуле курса «Python-разработчик». И даже примените новые знания при создании программы, которая позволит расшифровать азбуку Морзе.
По списку
Чтобы вывести на экран все элементы списка, напишите код:
# список elems = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # итерация по списку for item in elems: print(item) . 0 1 2 3 4 5 6 7 8 9
Такого же результата можно добиться с помощью функции range, которая генерирует последовательность чисел.
# итерация по числам с нуля до 10 не включительно for i in range(0, 10): print(i) . 0 1 2 3 4 5 6 7 8 9
С шагом
Если нужно отобразить каждое второе число из списка, сделайте проверку на деление с остатком. Алгоритм:
получаем размерность множества;
↓
отнимаем от этого числа единицу;
↓
итерируемся по множеству чисел с нуля до полученного числа включительно;
↓
получаем элементы списка, используя индексацию.

Python для начинающих аналитиков | Урок 2 | Цикл For in, list, метод Split(), tuple
Каждый шаг цикла делим индекс на 2 с остатком. Если остатка не будет, выводим число на печать. Вот так:
# кортеж elems = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) # получаем размерность length = len(elems) # нам не нужно отнимать единицу, так как # крайнее число в range не входит в последовательность # первое число тоже не указываем # по умолчанию — оно равно нулю for i in range(length): # если остатка нет — выводим число if i % 2 == 0: print(elems[i]) . 0 2 4 6 8
Этот же пример можно выполнить с помощью функции enumerate. На каждой итерации эта функция возвращает индекс элемента и его значение.
# множество elems = # применяется распаковка кортежа вида (индекс, элемент) for index, elem in enumerate(elems): if index % 2 == 0: print(elem) . 0 2 4 6 8
Так это делают с помощью шага в функции range:
# каждое второе число от 0 до 10 for i in range(0, 10, 2): print(i) . 0 2 4 6 8
Если необходимо прервать цикл, например когда ожидали символ, а получили число, используйте инструкцию break.
for chr in "The t3st string" if chr.isdigit(): break print(chr) . T h e t
# дальше вывод не пойдет, так как слово t3st написано через тройку
Перейти на следующий шаг цикла можно с помощью инструкции continue.
for i in range(10): if i % 3 == 0: continue print(i) . 1 2 4 5 7 8
По строке
Иногда в алгоритмах нужно применять альтернативные инструкции для объектов, которые не проходят проверку. Выведем на печать каждый символ строки, меняя нижний регистр на верхний:
for chr in "THis is THe TEst sTRinG": if chr.islower(): print(chr.upper()) else: print(chr) . T H I S I S T H E T E S T S T R I N G
Если вы хотите прочитать каждую строку файла:
with open('file.txt', 'r') as f: for line in f: print(line)
По словарю
Итерацию по словарю проводят тремя способами. Первый и второй способ дают очередной ключ и очередное значение словаря на каждом шаге. Третий — и ключ, и значение за один шаг.
mydict =
# итерация по ключам for key in mydict: print(f" :: ")
# вывод вида . 1 :: one 2 :: two 3 :: three 4 :: four 5 :: five
# по ключам с явным указанием for key in mydict.keys(): print(f" :: ")
# вывод вида . 1 :: one 2 :: two 3 :: three 4 :: four 5 :: five
# итерация по значениям for value in mydict.values(): print(value) . one two three four five
# итерация по ключам и значениям # применяется распаковка кортежа вида (ключ, значение) for key, value in mydict.items(): print(key, value) . 1 one 2 two 3 three 4 four 5 five
Обратный цикл
Встроенная функция reversed и слайсинги позволяют проводить итерацию по объекту в обратном порядке.
elems = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# пример for item in reversed(elems): print(item) . 9 8 7 6 5 4 3 2 1 0
# пример использования слайсингов for item in elems[::-1]: print(item) . 9 8 7 6 5 4 3 2 1 0
Генератор
Инструкция for есть в различных выражениях-генераторах, например генераторе списка или словаря.
Разобраться во всех тонкостях языка проще на курсе «Python-разработчик». Вам помогут опытные преподаватели и наставники, вы попрактикуетесь, составите сильное портфолио и резюме, а еще получите диплом установленного образца.
# так мы сделаем список из 20 случайно сгенерированных чисел mylist = [random.randint(0, 11) for _ in range(20)]