Цикл for использует итератор для обхода последовательности, например. диапазон чисел, элементы списка и т. д. Проще говоря, итератор — это переменная, которая проходит по списку.
Итератор начинает обход с начала последовательности. На каждой итерации итератор обновляется до следующего значения в последовательности.
Цикл завершается, когда итератор достигает конца последовательности.
В цикле for нам нужно определить три основные вещи:
Цикл всегда начинается с ключевого слова for. Тело цикла сдвинуто вправо:
for iterator in sequence:
# тело цикла
# тело цикла
# тело цикла
Ключевое слово in указывает, что итератор будет проходить через значения в структуре последовательности/данных.
В Python есть встроенная функция range(), которая может использоваться для создания последовательности целых чисел. Эту последовательность можно перебрать при помощи цикла for. Диапазон указывается в следующем формате:
range(start, end, step)
где:
Давайте посмотрим, как цикл for перебирает диапазон целых чисел:
for i in range(1, 11): # Диапазон от 1 до 10
if i % 2 == 0:
print(i, " четное")
else:
print(i, " нечетное")
Мы получим следующий вывод:
1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
Как мы видим выше, вместо того, чтобы индивидуально проверять, является ли каждое целое число от 1 до 10 четным или нечетным, мы можем перебрать последовательность и вычислить i % 2 == 0 для каждого элемента.
Итератор i начинается с 1 и становится каждым последующим значением в последовательности.
Давайте посмотрим, как изменится цикл, когда указан компонент шага диапазона:
for i in range(1, 11, 3): # Диапазон от 1 до 10 с шагом 3
print(i)
Вывод:
1
4
7
10
Также мы можем указать функции range только один параметр:
for i in range(11): # Диапазон от 0 до 10
print(i)
В этом случае start будет равен 0, end - 11, а step - 1
Вывод:
0
1
2
3
4
5
6
7
8
9
10
Более подробно со списками мы познакомимся в следующей главе. Сейчас просто посмотрим как мы можем перебрать список с помощью цикла for
float_list = [2.5, 16.42, 10.77, 8.3, 34.21] # это список, который содержит 5 элементов
print(float_list)
for i in range(0, len(float_list)): # Начиная с нулевого элемента, перебираем список
float_list[i] = float_list[i] * 2 # И умножаем каждое значение на 2
print(float_list)
И получим вот такой вывод:
[2.5, 16.42, 10.77, 8.3, 34.21]
[5.0, 32.84, 21.54, 16.6, 68.42]
Аналогичным образом мы можем итерировать строки. В случае итерации строки, каждый символ строки будет восприниматься как отдельный элемент:
str1 = 'I learn Python on IT-Junior'
for i in str1:
print(i)
Вывод
I
l
e
a
r
n
P
y
t
h
o
n
o
n
I
T
-
J
u
n
i
o
r