Цикл for используют, когда количество повторов известно заранее.
В быту нам часто приходится выполнять повторяющиеся действия. Например, чтобы повесить постиранное белье, нужно доставать и развешивать каждую вещь. В программировании такие повторяющиеся задачи упрощают. Чтобы писать один и тот же код снова и снова, используют циклы.
💡 Итерация — это повтор какого-либо действия. То есть один шаг цикла. Например, цикл из пяти повторений — пять итераций.
💡 Итератор — это интерфейс, который позволяет получить следующий объект последовательности.
💡 Итерируемые объекты — это объекты, которые можно повторять.
В Python проводят итерации только по тем объектам, которые реализуют интерфейс итератора. Это значит, что объект должен переопределять и реализовывать методы __iter__ и __next__.
Метод __iter__ возвращает self — ссылку на экземпляр. С помощью __next__ получают следующий элемент последовательности.
Схема работы цикла for
В Python есть два вида циклов: for и while.
Цикл for позволяет проводить итерации — реализовывать набор инструкций нужное количество раз. Его используют, когда количество итераций известно заранее, поэтому второе название цикла — c предусловием.
Цикл while — выполнять инструкции до тех пор, пока проверка во главе цикла будет истинной. Его используют, когда заранее не знают количества итераций, поэтому еще его называют циклом с проверкой условия.
Пример:
int i = 0
while i < 10:
print(“Hello, World!”)
i++
Он выглядит так:
for (<объявление условия>)
<условие 1>
<тело цикла>
<условие 2>
<тело цикла>
<условие n>
<тело цикла>
<код, который выполняет каждый шаг>
<код, который выполняется после итерации>
Цикл 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)]
Рассказываем про «Тинькофф», «Билайн» и другие компании.
Указывайте в отчете только одну ошибку, прикладывайте скрины, сообщения и коды.
Учимся добавлять и изменять элементы, объединять и копировать списки.
Конструкция, чтобы много раз выполнять один и тот же участок кода.
JSON часто применяют, когда разрабатывают API и веб-приложения.
Есть сервисы, платформы и телеграм-каналы с вакансиями по всему миру.
С помощью HTML структурируют страницу на сайте, добавляют картинки, таблицы, списки.
Есть комьюнити на платформах, под эгидой компаний или самоорганизующиеся.
Обязанности и зарплата аналитика, Python- и Java-разработчиков и не только.
Правильное питание — это не о жестких диетах и полном отказе от любимых продуктов.
Благодаря методу «круга-пирога» увидите свое время и возьмете его под контроль.
Ищите мотивацию, хвалите себя, визуализируйте план и результат.
Лягушки — небольшие, но неприятные дела, слоны — долговременные задачи.
Когда ставите цель, отталкивайтесь от проблемы и конкретизируйте решение.
Этот специалист контролирует все этапы проекта и приводит его к успеху.
Советы всем удаленщикам — больше двигаться, делать зарядку, разминку для глаз.
Junior зарабатывает от 40 000 ₽, Middle от 100 000 ₽, а Senior от 250 000 ₽ и выше.
Совет от героини: сделайте первый шаг, дальше будет проще; учитесь и идите вперед.
Фишки и стоимость Forest, WaterDo, SleepTown, Alarmy, Pomodoro Timer Lite.
Программист fullstack получает до 550 000 ₽, а на тестировщика учатся 4–15 мес.
SQL используют в банках, торговле, перевозках: везде, где много информации.
Сначала поставьте цель: выберите сферу и определите, кем видите себя через 10 лет.
Термины разработки, Scrum, неформального общения, организационных процессов.
Узнаете о работе программиста и поймете, как писать хороший код.
Мозг меняется всю жизнь. Мы можем на него влиять: изучать новое, развивать навыки.
Помогает планирование, вера в то, что реально изменить жизнь, поддержка семьи.
С помощью CSS задают цвет, размеры, анимацию, адаптируют сайт под устройства.
Python — самый популярный язык программирования в феврале 2022 года.
Гуманитарию подойдут профессии тестировщика, веб-дизайнера и не только.
Фронтендер создает интерфейс продукта, бэкендер работает с серверной частью.
Обязанности Java-разработчика — писать код, тестировать и улучшать его.
IT-отрасль привлекает удаленкой, карьерным ростом, высоким доходом.
Воспользуйтесь Google Colab, онлайн-интерпретаторами или скачайте Python.
Используйте конструкторы no-code, Java или Kotlin, Android Studio.
Бесплатный сервис позволяет писать тесты, поддерживает разные типы API.
Colab используют, чтобы создавать код на Python прямо в браузере.
Освоить новую профессию реально с нуля в любом возрасте, главное — мотивация.
Не выбирайте по принципу «чем проще, тем лучше» и уважайте желания ребенка.
Важнее опыт и проекты в портфолио, но иногда высшее образование все-таки нужно.
Сегодня удаленка доступна для разных сфер: ИТ, маркетинг, сервис, продажи.
Выбирайте по уровню спроса у работодателей и направлению в программировании.
20 фильмов и сериалов для тех, кому интересен мир информационных технологий.
Frontend-разработчик создает внешнюю — пользовательскую часть веб-ресурса.
Backend-разработчик отвечает за внутреннюю — серверную сторону веб-ресурса.
Спринты используют в долгих проектах и сложных продуктах.
Преимущества Python — понятный синтаксис и читаемость, готовые библиотеки.
Jupyter-ноутбуки применяют для визуализации данных в big data и data science.
Soft skills помогают развивать компетенции, осваивать новые тенденции в работе.
На Java разрабатывают всё: от приложений и ПО до технологий Big Data.