Введение
В программировании цикл For известен, как цикл с известным количеством повторений. Но в Python этот цикл представляет собой более универсальную инструкцию. Это означает, что цикл For используется в те моменты, когда количество итераций известно до входа в цикл, в отличие от цикла While, который основан на условиях.
Подготовка перед работой
Перед началом работы, необходимо выполнить два шага:
- Установить операционную систему под управлением Ubuntu/Debian/CentOS и произвести первоначальную настройку системы;
- Установить и настроить виртуальную среду на Python.
Цикл For
Конструкция цикла For строится следующим образом:
for 'переменная' in 'последовательность':
'действие'
Рассмотрим пример выполнения цикла внутри командного интерпретатора Python.
Напишем маленький кусок кода, в котором начинается цикл for, за ним присваивается переменная n и в последовательности от 6 до 11 выводятся цифры и с помощью функции print() возвращаем значения в терминал.
for n in range(6,11):
print(n)

В программировании индекс чисел начинается с 0, по этой причине в результате мы видим 5 разных значений, которые находятся в диапазоне от 6 до 11.
Использование range() в цикле for
Одним из встроенных последовательностей является range() для управления тем, сколько раз будет повторяться наш цикл.
У range() есть три параметра:
- Start – является началом последовательности (не обязательный параметр и значение по умолчанию 0)
- Stop – является точкой остановки последовательности (обязательный параметр)
- Step – является шагом последовательности (не обязательный параметр и значение по умолчанию 1).
Рассмотрим код с циклом for, в котором присваиваем переменную n и значение 15 (параметр stop) для range(), чтобы последовательность была в этом диапазоне:
for n in range(15):
print(n)

Для остановки цикла указали параметр 15, поэтому в результате получили 15 значений от 0 до 14 исключая число 15.
Рассмотрим код с использованием параметров range(start/stop), определим цикл for, присвоим переменную n и укажем значения в виде параметров start и stop.
for n in range(10,15):
print(n)

Когда мы определили точку start и stop, мы получили результат в диапазоне от 10 до 15, исключая число 15.
Параметр step используется для указывания шага между значениями start и stop. Рассмотрим в следующем коде использование шагов в диапазоне, объявим цикл for и в нём переменную n, присвоим значения параметрам start/step/stop:
for n in range(25,50,5):
print(n)

В результате получаем 5 разных значений в диапазоне 25-50 с использованием значения 5 в качестве шагов.
В качестве параметра step можно указать отрицательное число, как показано в следующем примере. Объявим цикл for и переменную, в параметры range присвоим значения 1000,900,-10. Чтобы итерация выполнялось в обратном порядке:
for n in range(1000,900,-10):
print(n)

Мы рассмотрели программу, где точкой начала является 1000 и с помощью обратной итерации получили значения до 910.
Использование списка в цикле
В циклах можно использовать список в качестве параметров итерации. Вместо range() можно обозначить переменную до цикла for и использовать после in переменную.
Рассмотрим код с переменным list, который принимает несколько слов, далее объявим цикл for с переменным list и пройдёмся по данным из этого списка:
list = ['one', 'two', 'three', 'four']
for list in list:
print(list)

В этом примере мы рассмотрели вызова данных из списка, обозначенного заранее. Вместо переменно list, мы могли использовать другую переменную, но результат был бы одинаковым.
Поскольку списки и другие типы данных являются итерируемыми, их можно комбинировать с функцией range().
Выберем переменную из примера выше, объявим цикл for с переменной item, в параметрах range() укажем длину списка list. В следующей строке с помощью append в список переменной list добавим слово five:
list = ['one', 'two', 'three', 'four', 'five']
for item in range(len(list):
list.append('six')
print(list)

В этом примере мы добавили 5 слов six равный количеству слов из списка list.
Также цикл for мы можем использовать для создания списка с разных значений. В следующем примере обозначим переменную numbers, в котором объявим список. Добавим цикл for и параметр 25 в функции range(). В следующей строке запишем функцию для инициализации нашего пустого списка со значением n, который будет дополнять список:
numbers = [ ]
for n in range(25):
numbers.append(n)
print(numbers)

В примере мы рассмотрели переменную без списка, дальше добавили цикл, в котором диапазон от 0 до 25 и с помощью append прибавляется +1 значение к 0 и далее.
Этим же способом мы можем перебирать строку с символами.
Объявим переменную word и ей присвоим слово quickly, с помощью цикла for переберём слово:
word = 'quickly'
for letter in word:
print(letter)

В примере выше цикл for перебрал слово quickly и разбил на строки.
В цикле for можно использовать словарь. Как известно в словаре используется ключ, первое слово до двоеточия, за ним следует слово присвоенный к ключу. Чтобы правильно вызвать значение ключа через двоеточия, рассмотрим следующий пример:
list_dict = {'name': 'ServerSpace', 'year': '2022'}
for key in list_dict:
print(key + ':' + list_dict[key])

В приведенном выше примере переменная key использовалась для обозначения ключа, а list_dict[key] – для обозначения значений.
Вложенные циклы For
Вложенный цикл является циклом внутри цикла for и конструкция вложенного цикла выглядит следующим образом:
for 'первая переменная для итерации' in 'исходный цикл'
'действие'
for 'вторая переменная для итерации' in 'вложенный цикл'
'действие'
Программа сначала выполняет первую итерацию исходного цикла, затем переходит во внешний цикл и выполняет все итерации, возвращается в исходный цикл и выполняет следующую итерацию и так до конца пока итерация исходного цикла не завершится. Рассмотрим в следующем примере, объявим переменную num с целочисленными типами данных и let с символами.
В исходном цикле объявим цикл for и переменную num, во внешнем let:
num = [10, 15, 25]
let = ['w', 's', 'x']
for number in num:
print(number)
for letter in let:
print(letter)

Усложним задачу со списком внутри списка. Попробуем извлечь информацию отдельными строками:
- Объявим переменную list_in_list и добавим внутрь переменной наш список;
- Добавим исходный цикл с переменной list и list_in_list;
- В цикле объявим item внутрь list;
- Вызовем item.
list_in_list = [['one', 'two', 'three'], [25,50,75], [0.25, 0.50, 0.75]]
for list in list_in_list:
for item in list:
print(item)

Выводы
В этой инструкции мы рассмотрели цикл for с использованием:
- Последовательности range();
- Списков и словарей;
- Вложенные циклы внутри исходного цикла.