Циклы - один из основных мощнейших инструментов любого высокоуровневого языка программирования. В Python они представлены двумя базовыми конструкциями: while и for. Циклы позволяют многократно выполнять последовательность требуемых действий. Если у вас есть объект последовательности, такой как список, вы можете использовать цикл for для перебора элементов, содержащихся в списке.
🕙 Сама концепция цикла - это восприятия вечно повторяющихся событий.
Самый простой пример перебрать массив элементов:
for i in [0, 1, 2, 3, 4, 5]:
print(i, end="; ")
Результат:
> 0; 1; 2; 3; 4; 5;
Функция Range в Python
Функция range() возвращает последовательность целых чисел на основе переданных ей аргументов.
range(stop)
range(start, stop[, step])
Начальный аргумент (start) — это первое значение в диапазоне. Если функция range() вызывается с одним аргументом, Python предполагает, что start = 0.
Аргумент остановки (stop) является верхней границей диапазона. Важно понимать, что само предельное значение не входит в последовательность.
Давайте попробуем создать такую конструкцию.
for i in range(1, 10000):
print(i)
Результат:
> 1
> 2
> 3
> 4
> 5
> 6
> 7
> 8
> 9
> 10
> ...
> 9990
> 9991
> 9992
> 9993
> 9994
> 9995
> 9996
> 9997
> 9998
> 9999
Итерации
Итерация (Iteration) - это одно из повторений цикла, т.е шаг циклического процесса.
Итерируемый объект (Iterable) - объект, который может отдавать один результат за каждую итерацию, пример: Владик, Саша, Юля...
Итератор (iterator) — это итерируемый объект, реализующий метод __next__ для получения следующего элемента.
Синтаксис цикла for
for item in items:
#наш выполняемый код...
С помощью цикла for можно совершать обход строк, списков, кортежей и описанных выше итерируемых объектов.
Циклы на практике
Цикл по списку:
united_nations = ['Австралия', 'Аргентина', 'Белоруссия', 'Бельгия', 'Боливия', 'Бразилия']
for country in united_nations:
print(country)
Результат:
> Австралия
> Аргентина
> Белоруссия
> Бельгия
> Боливия
> Бразилия
Цикл по словарю:
Чуть более сложный пример касается повторяющихся словарей. Как правило, при переборе словаря необходимо получить и ключ, и значение. Это делается с помощью метода .items(), который создает кортеж для каждого элемента в словаре.
Пример цикла по словарю:
sea_or_lake = {
'Северное море': 'Море',
'Байкал': 'Озеро',
'Чёрное море': 'Море',
'Крейтер': 'Озеро',
'Гурон': 'Озеро',
}
# создадим переменные для подсчета морей и озер из словаря
sea = 0
lake = 0
for name, water_type in sea_or_lake.items():
if water_type == 'Озеро':
lake += 1
else:
sea += 1
print(f'Озер: {lake}, морей: {sea}')
Результат:
> Озер: 3, морей: 2
Цикл по строке:
Строка состоит из символов, а это уже последовательность. Поэтому мы можем обойти строку в цикле.
word = 'Москва'
for w in word:
print(w, end=" ")
Результат:
> М о с к в а
Обратный цикл for
Если вы все еще не уверены, что range() полезен, то вот еще один пример: благодаря этой функции вы можете взять и пройти последовательность в обратном направлении.
for num in range(100, 90, -1):
print(num)
Результат:
> 100
> 99
> 98
> 97
> 96
> 95
> 94
> 93
> 92
> 91
Цикл for с шагом
Цикл for с шагом создается с помощью уже известной нам функции range, где в качестве третьего аргумента необходимо передать размер шага:
for num in range(100, 1000, 250):
print(num)
Результат:
> 100
> 350
> 600
> 850