14 Апр 2022
6 мин
71982

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

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

Содержание

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

Итерации

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

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

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

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

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

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

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

Непрофессионалу сложно разобраться в этих значениях. Но если нравится программирование и хотите его изучать, приходите на курс «Python-разработчик». Вы не только поймете все тонкости работы, но и выполните типовые проекты разработчика, добавите их в портфолио и получите диплом установленного образца. А еще вас ждут консультации центра карьеры, которые помогут быстро найти хорошее место работы.

Виды циклов

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

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

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

Пример:

int i = 0
while i < 10:
    print(“Hello, World!”)
    i++

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

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

for (<объявление условия>)
    <условие 1>
        <тело цикла>
    <условие 2>
        <тело цикла>
    <условие n>
        <тело цикла>

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

Как работать с циклом 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 = {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:

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

Разобраться во всех тонкостях языка проще на курсе «Python-разработчик». Вам помогут опытные преподаватели и наставники, вы попрактикуетесь, составите сильное портфолио и резюме, а еще получите диплом установленного образца.

# так мы сделаем список из 20 случайно сгенерированных чисел
mylist = [random.randint(0, 11) for _ in range(20)]

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

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

Содержание

Добавить комментарий

Получить iPhone 15
Пройдите тест, узнайте какой профессии подходитеНачать тест
+