img
img
14 апреля 2022
14 апреля 2022
5 мин
63

Как работает цикл for в Python

Цикл for используют, когда количество повторов известно заранее.

img
Автор статьи
Анастасия Хамидулина
Копирайтер, редактор
img

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

Итерации

💡 Итерация — это повтор какого-либо действия. То есть один шаг цикла. Например, цикл из пяти повторений — пять итераций.

💡 Итератор — это интерфейс, который позволяет получить следующий объект последовательности.

💡 Итерируемые объекты — это объекты, которые можно повторять.

В Python проводят итерации только по тем объектам, которые реализуют интерфейс итератора. Это значит, что объект должен переопределять и реализовывать методы __iter__ и __next__.

Метод __iter__ возвращает self — ссылку на экземпляр. С помощью __next__ получают следующий элемент последовательности.

Как работает цикл for в Python

Схема работы цикла for

Виды циклов

В Python есть два вида циклов: for и while.

Цикл for позволяет проводить итерации — реализовывать набор инструкций нужное количество раз. Его используют, когда количество итераций известно заранее, поэтому второе название цикла — c предусловием.

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

Пример:


int i = 0

while i < 10:

print(“Hello, World!”)

i++

Синтаксис цикла for

Он выглядит так:


for (<объявление условия>)

<условие 1>

<тело цикла>

<условие 2>

<тело цикла>

<условие n>

<тело цикла>

<код, который выполняет каждый шаг>

<код, который выполняется после итерации>

Как работать с циклом for в Python

Цикл for работает со встроенными типами данных. Например, строки, списки, множества, кортежи, словари и даже файлы.

🚀 По списку

Чтобы вывести на экран все элементы списка, напишите код:

# список

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

🚀 С шагом

Если нужно отобразить каждое второе число из списка, сделайте проверку на деление с остатком. Алгоритм:

получаем размерность множества;

отнимаем от этого числа единицу;

итерируемся по множеству чисел с нуля до полученного числа включительно;

получаем элементы списка, используя индексацию.

Каждый шаг цикла делим индекс на 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 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

# применяется распаковка кортежа вида (индекс, элемент)

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 = {1: "one", 2: "two", 3: "three", 4: "four", 5: "five"}


# итерация по ключам

for key in mydict:

print(f"{key} :: {mydict[key]}")


# вывод вида <ключ :: значение>

...

1 :: one

2 :: two

3 :: three

4 :: four

5 :: five


# по ключам с явным указанием

for key in mydict.keys():

print(f"{key} :: {mydict[key]}")


# вывод вида <ключ :: значение>

...

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 есть в различных выражениях-генераторах, например генераторе списка или словаря.


# так мы сделаем список из 20 случайно сгенерированных чисел

mylist = [random.randint(0, 11) for _ in range(20)]

Главное о цикле for

  • For перебирает элементы и выполняет код, который записан в теле цикла. В его основе лежат последовательности.
  • Главное условие успешной работы цикла — объект должен быть итерируемым.
  • Итерацию проводят по многим встроенным структурам данных: строки, словари, списки, множества, кортежи. Внутри инструкции создают ветвления в алгоритме с помощью проверок.
  • Чтобы прервать цикл, используйте ключевое слово break. Чтобы пропустить элемент итерируемого множества — continue.
  • Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Научитесь писать чистый код, разрабатывать сложную архитектуру сервисов. Даем только актуальные знания: исследовали 1230 вакансий, составили список самых частых требований к разработчикам без опыта и включили их в программу. В конце курса станете уверенным начинающим программистом и найдете работу в IT.
img
Подпишитесь на рассылку, чтобы Не упустить что-нибудь новое
Просто и понятно о том, как получить новую профессию


    Дадим нужные знания и поможем получить работу!
    Регистрируйтесь на курс и учитесь у экспертов-практиков.
    Профессия
    за 11 месяцев
    Java-разработчик
    • Даем знания и навыки, которые помогут найти высокооплачиваемую работу
    • Прикрепляем наставника: он ответит на любые вопросы
    • Много практики в среде коммерческой разработки
    • Всего 10 часов в неделю
    3 489 ₽/мес.
    Ещё по теме
    img
    Программирование
    IT-компания — это не только Google

    Рассказываем про «Тинькофф», «Билайн» и другие компании.

    16 мая 2022
    2 мин
    карьера
    img
    Программирование
    Как составить и оформить баг-репорт

    Указывайте в отчете только одну ошибку, прикладывайте скрины, сообщения и коды.

    04 мая 2022
    6 мин
    баг-репорт
    img
    Программирование
    Как работать со списками в Python

    Учимся добавлять и изменять элементы, объединять и копировать списки.

    02 мая 2022
    5 мин
    python
    списки
    img
    Программирование
    Цикл for в Java: что это, как с ним работать

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

    25 апреля 2022
    6 мин
    java
    циклы
    языки программирования
    img
    Программирование
    Как работать с модулем JSON в Python

    JSON часто применяют, когда разрабатывают API и веб-приложения.

    25 апреля 2022
    9 мин
    python
    языки программирования
    img
    Программирование
    Как IT-специалисту из России найти работу за рубежом в 2022 году

    Есть сервисы, платформы и телеграм-каналы с вакансиями по всему миру.

    21 апреля 2022
    6 мин
    востребованные профессии
    img
    Программирование
    Что такое HTML: основные теги

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

    16 апреля 2022
    6 мин
    html (hypertext markup language)p Language)
    верстка сайтов
    img
    Программирование
    Комьюнити для разработчика

    Есть комьюнити на платформах, под эгидой компаний или самоорганизующиеся.

    07 апреля 2022
    6 мин
    общение
    сообщество
    img
    Программирование
    Гайд: как определить, какое направление в IT тебе подходит

    Обязанности и зарплата аналитика, Python- и Java-разработчиков и не только.

    01 апреля 2022
    9 мин
    выбор профессии
    гуманитарий в IT
    img
    Программирование
    Правильное питание на удаленке. Почему это важно?

    Правильное питание — это не о жестких диетах и полном отказе от любимых продуктов.

    01 апреля 2022
    7 мин
    удаленная работа
    img
    Программирование
    Как я нашла время на учебу, когда времени не было совсем

    Благодаря методу «круга-пирога» увидите свое время и возьмете его под контроль.

    30 марта 2022
    7 мин
    дистанционное обучение
    домашняя работа
    самоорганизация
    img
    Программирование
    9 причин, почему не получается внедрять полезные привычки

    Ищите мотивацию, хвалите себя, визуализируйте план и результат.

    30 марта 2022
    8 мин
    постановка цели
    самоорганизация
    img
    Программирование
    Как больше успевать: зачем есть по одной лягушке в день и как справиться со слоном

    Лягушки — небольшие, но неприятные дела, слоны — долговременные задачи.

    30 марта 2022
    2 мин
    самоорганизация
    эффективность
    img
    Программирование
    Как поставить цель и не бросить на полпути

    Когда ставите цель, отталкивайтесь от проблемы и конкретизируйте решение.

    30 марта 2022
    6 мин
    постановка цели
    самоорганизация
    img
    Программирование
    Кто такой менеджер проектов, чем занимается и как им стать

    Этот специалист контролирует все этапы проекта и приводит его к успеху.

    30 марта 2022
    8 мин
    управление проектами
    img
    Программирование
    Как не угробить здоровье на удаленке

    Советы всем удаленщикам — больше двигаться, делать зарядку, разминку для глаз.

    30 марта 2022
    9 мин
    удаленная работа
    img
    Программирование
    Junior, Middle, Senior в разработке — кто есть кто и как перейти на уровень выше

    Junior зарабатывает от 40 000 ₽, Middle от 100 000 ₽, а Senior от 250 000 ₽ и выше.

    29 марта 2022
    12 мин
    junior
    middle
    senior
    img
    Программирование
    Как банковская служащая в 32 года с нуля перешла в IT и в 40 открыла свою компанию по разработке онлайн-игр

    Совет от героини: сделайте первый шаг, дальше будет проще; учитесь и идите вперед.

    29 марта 2022
    14 мин
    смена профессии
    смена сферы
    img
    Программирование
    Пять приложений, чтобы не отвлекаться от учебы и работы

    Фишки и стоимость Forest, WaterDo, SleepTown, Alarmy, Pomodoro Timer Lite.

    29 марта 2022
    5 мин
    самоорганизация
    img
    Программирование
    Самый краткий гид по специализациям программистов

    Программист fullstack получает до 550 000 ₽, а на тестировщика учатся 4–15 мес.

    29 марта 2022
    3 мин
    backend-разработка
    c++
    frontend-разработчик
    java-разработчик
    востребованные профессии
    инженер по тестированию
    img
    Программирование
    Язык SQL: что это такое и зачем он нужен

    SQL используют в банках, торговле, перевозках: везде, где много информации.

    29 марта 2022
    7 мин
    mysql
    базы данных
    img
    Программирование
    Как освоить c нуля IT-профессию и перейти на новую работу без опыта

    Сначала поставьте цель: выберите сферу и определите, кем видите себя через 10 лет.

    29 марта 2022
    6 мин
    выбор профессии
    смена сферы
    img
    Программирование
    Словарь IT-сленга

    Термины разработки, Scrum, неформального общения, организационных процессов.

    29 марта 2022
    13 мин
    сленг
    словарь
    img
    Программирование
    Подборка: 33 книги и подкаста для начинающих программистов

    Узнаете о работе программиста и поймете, как писать хороший код.

    28 марта 2022
    10 мин
    книга
    подкаст
    img
    Программирование
    Хакнуть мозг: как современные знания помогают мозгу развиваться и учиться

    Мозг меняется всю жизнь. Мы можем на него влиять: изучать новое, развивать навыки.

    28 марта 2022
    8 мин
    развитие мозга
    img
    Программирование
    Как совмещать работу, учебу, семью и быт: рассказ будущего тестировщика

    Помогает планирование, вера в то, что реально изменить жизнь, поддержка семьи.

    28 марта 2022
    8 мин
    курс обучения
    личная история
    онлайн-образование
    смена профессии
    тестирование
    img
    Программирование
    Что такое CSS и как с ним работать

    С помощью CSS задают цвет, размеры, анимацию, адаптируют сайт под устройства.

    16 марта 2022
    9 мин
    css
    img
    Программирование
    Как создать телеграм-бота на Python

    Python — самый популярный язык программирования в феврале 2022 года.

    16 марта 2022
    9 мин
    python
    img
    Программирование
    Какие профессии в IT подойдут гуманитарию

    Гуманитарию подойдут профессии тестировщика, веб-дизайнера и не только.

    15 марта 2022
    9 мин
    выбор профессии
    карьера
    img
    Программирование
    Frontend или backend: чем отличаются и какой вид разработки выбрать

    Фронтендер создает интерфейс продукта, бэкендер работает с серверной частью.

    15 марта 2022
    7 мин
    backend-разработка
    frontend
    img
    Программирование
    Кто такой Java-разработчик, чем занимается и как им стать

    Обязанности Java-разработчика — писать код, тестировать и улучшать его.

    15 марта 2022
    7 мин
    java
    java-разработчик
    карьера
    img
    Программирование
    Что такое IT-сфера и почему она сейчас так популярна

    IT-отрасль привлекает удаленкой, карьерным ростом, высоким доходом.

    04 марта 2022
    7 мин
    it
    карьера
    img
    Программирование
    Как установить Python на компьютер и начать на нём писать

    Воспользуйтесь Google Colab, онлайн-интерпретаторами или скачайте Python.

    04 марта 2022
    4 мин
    python
    языки программирования
    img
    Программирование
    Как создать приложение для Андроид самостоятельно с нуля: инструкция

    Используйте конструкторы no-code, Java или Kotlin, Android Studio.

    04 марта 2022
    8 мин
    андроид
    разработка
    img
    Программирование
    Postman: как пользоваться программой для тестирования API

    Бесплатный сервис позволяет писать тесты, поддерживает разные типы API.

    04 марта 2022
    6 мин
    api
    postman
    img
    Программирование
    Google Colab: что это такое и как с ним работать

    Colab используют, чтобы создавать код на Python прямо в браузере.

    04 марта 2022
    4 мин
    google colab
    img
    Программирование
    Как перейти в разработчики из другой профессии

    Освоить новую профессию реально с нуля в любом возрасте, главное — мотивация.

    03 марта 2022
    8 мин
    карьера
    разработка
    img
    Программирование
    Как помочь ребенку выбрать профессию

    Не выбирайте по принципу «чем проще, тем лучше» и уважайте желания ребенка.

    03 марта 2022
    7 мин
    карьера
    родителям
    img
    Программирование
    Нужно ли высшее образование программисту: сравниваем все «за и «против»

    Важнее опыт и проекты в портфолио, но иногда высшее образование все-таки нужно.

    02 марта 2022
    5 мин
    образование
    img
    Программирование
    Стоит ли переходить на удаленку: плюсы и минусы

    Сегодня удаленка доступна для разных сфер: ИТ, маркетинг, сервис, продажи.

    02 марта 2022
    6 мин
    удаленка
    img
    Программирование
    Какой язык программирования выбрать новичку

    Выбирайте по уровню спроса у работодателей и направлению в программировании.

    24 февраля 2022
    7 мин
    языки программирования
    img
    Программирование
    Фильмы про программистов: лучшие фильмы и сериалы про компьютерных гениев

    20 фильмов и сериалов для тех, кому интересен мир информационных технологий.

    24 февраля 2022
    7 мин
    фильмы
    img
    Программирование
    Фронтенд-разработчик: кто это такой и как им стать с нуля

    Frontend-разработчик создает внешнюю — пользовательскую часть веб-ресурса.

    24 февраля 2022
    8 мин
    frontend
    карьера
    img
    Программирование
    Backend-разработчик: кто это такой и чем он занимается

    Backend-разработчик отвечает за внутреннюю — серверную сторону веб-ресурса.

    24 февраля 2022
    9 мин
    backend
    карьера
    img
    Программирование
    Что такое спринты в программировании и как их выполнять

    Спринты используют в долгих проектах и сложных продуктах.

    24 февраля 2022
    5 мин
    agile
    scrum
    спринты в программировании
    img
    Программирование
    Как начать изучать Python

    Преимущества Python — понятный синтаксис и читаемость, готовые библиотеки.

    24 февраля 2022
    9 мин
    python
    языки программирования
    img
    Программирование
    Jupyter Notebook: что это такое и как им пользоваться

    Jupyter-ноутбуки применяют для визуализации данных в big data и data science.

    24 февраля 2022
    7 мин
    jupyter notebook
    python
    разработка
    img
    Программирование
    Как развить soft skills

    Soft skills помогают развивать компетенции, осваивать новые тенденции в работе.

    24 февраля 2022
    11 мин
    soft skills
    саморазвитие
    img
    Программирование
    Как начать изучать Java

    На Java разрабатывают всё: от приложений и ПО до технологий Big Data.

    24 февраля 2022
    7 мин
    java
    java-разработчик
    языки программирования