Переменная цикла
Давайте еще раз взглянем на базовую структуру цикла for
:
for название_переменной_цикла in range(количество_повторений):
блок кода
Не совсем понятно, для чего нужна и как работает переменная цикла.
Рассмотрим следующий код:
for i in range(10):
print(i)
Результатом выполнения такого кода будет:
0
1
2
3
4
5
6
7
8
9
Когда цикл впервые начинает работу, Python устанавливает значение переменной цикла i = 0
. Каждый раз, когда мы повторяем тело цикла, Python увеличивает значение переменной на .
Почему большинство программистов начинают цикл с , а не с ? Раньше некоторые начинали цикл с , а некоторые с . Те и другие приводили весьма изощренные аргументы, споря о том, какой способ лучше. Но в конце концов победили сторонники второго варианта. С тех пор большинство начинает циклы с . В частности, в Python цикл for
начинается с , однако в будущих уроках вы узнаете, как это изменить.
Поскольку переменная цикла i
увеличивается на каждый раз, то ее можно использовать для отслеживания номера итерации, на которой мы находимся в циклическом процессе.
Рассмотрим следующий код:
for i in range(10):
print(i, '-- Привет')
Результатом выполнения такого кода будет:
0 -- Привет
1 -- Привет
2 -- Привет
3 -- Привет
4 -- Привет
5 -- Привет
6 -- Привет
7 -- Привет
8 -- Привет
9 -- Привет
Если мы хотим начать с , то можем написать код:
for i in range(10):
print(i + 1, '-- Привет')
Результатом выполнения такого кода будет:
1 -- Привет
2 -- Привет
3 -- Привет
4 -- Привет
5 -- Привет
6 -- Привет
7 -- Привет
8 -- Привет
9 -- Привет
10 -- Привет
Обратите внимание, за счет выражения i + 1
, мы начинаем вывод с , а не с .
Имена переменных цикла
Ранее говорилось, что имена переменных должны носить осмысленный характер и описывать их назначение. Однако для переменных цикла иногда делаются исключения. В программировании для переменных цикла обычно используют буквы i
, j
, k
.
Следующие две программы абсолютно одинаковые: в первой программе переменная цикла имеет название i
, во второй программе – number
:
for i in range(10):
print(i)
for number in range(10):
print(number)
Результатом выполнения обеих программ будет:
0
1
2
3
4
5
6
7
8
9
Почему для переменной циклов зарезервированы буквы i
, j
, k
? Дело в том, что раньше программы использовались для математических расчетов, а в математике буквы a
, b
, c
и x
, y
, z
уже зарезервированы для других целей. Поэтому программисты выбрали для этой цели переменные i
, j
, k
, и это стало общепринятой практикой.
Бывают ситуации, когда переменная цикла не используется в теле цикла. В таком случае, вместо того, чтобы давать ей имя, мы можем указать символ нижнего подчеркивания _
:
for _ in range(5):
print('Python - awesome!')
Результатом выполнения такого кода будет:
Python - awesome!
Python - awesome!
Python - awesome!
Python - awesome!
Python - awesome!
Если переменная цикла не используется в теле цикла, то указывайте вместо неё символ нижнего подчеркивания _
.
Примечания
Примечание. Следует помнить, что правая граница цикла в Python всегда не включительна. Таким образом следующий код:
for i in range(5):
print(i)
распечатает числа от до :
0
1
2
3
4
Если требуется распечатать числа от до , то мы пишем код:
for i in range(5):
print(i + 1)