Цикл FOR

Синтаксис

В цикле for указывается переменная и множество значений, по которому будет пробегать переменная. Множество значений может быть задано списком(массивом), кортежем(перечисляем значения через запятую), строкой или диапазоном.

for переменная in множество значений:
    тело цикла

Пример со списком

In [1]:
a = [1, 2, 3, 4]
for i in a:
    print(i)
1
2
3
4

Тело цикла может быть сложным. Состоять из нескольких инструкций и содержать условия

In [2]:
a = [1, 2, 3, 4]
for i in a:
    if i % 2 == 0:
        print(i)
2
4

Пример с кортежем

In [3]:
for i in 1, 2, 3, 4:
    print(i)
1
2
3
4

i принимает все значения из множества значений. В примере ниже первые три итерации(итерация - одно выполнение тела цикла) i имеет тип str(строка), а последние две итерации тип int(целое число)

In [4]:
for i in 'aba', 'ba', 'cab', 1, 3:
    print(i)
aba
ba
cab
1
3

Пример со строкой

In [5]:
for i in "abacaba":
    print(i)
a
b
a
c
a
b
a

Диапазоны range

Циклы for используются для повторения какой-либо последовательности действий заданное число раз, либо для изменения значения переменной в цикле от некоторого начального значения до некоторого конечного.

Для повторения цикла некоторое заданное число раз n можно использовать цикл for вместе с функцией range:

In [6]:
n = 5
for i in range(n):
    print("FOR")
FOR
FOR
FOR
FOR
FOR

В качестве n может использоваться числовая константа, переменная или произвольное арифметическое выражение (например, 2 ** 10). Если значение n равно нулю или отрицательное, то тело цикла не выполнится ни разу.

Индексная переменная i будеть принимать значения от a до b - 1, то есть первый параметр функции range, вызываемой с двумя параметрами, задает начальное значение индексной переменной, а второй параметр — значение, которая индексная переменная принимать не будет. Если же a≥b, то цикл не будет выполнен ни разу.

In [7]:
for i in range(3, 6):
    print(i)
3
4
5

Чтобы организовать цикл, в котором индексная переменная будет уменьшаться, необходимо использовать функцию range с тремя параметрами. Первый параметр задает начальное значение индексной переменной, второй параметр — значение, до которого будет изменяться индексная переменная (не включая его!), а третий параметр — величину изменения индексной переменной.

Цикл по всем нечётным числам

In [8]:
for i in range(1, 9, 2):
    print(i)
1
3
5
7

Цикл по всем числам от 5 до 1

In [9]:
for i in range(5, 0, -1):
    print(i)
5
4
3
2
1

запись range(n) эквивалентна записи range(0, n)