Цикл for
Цикл
for
, также
называемый циклом с параметром, в языке Питон богат возможностями. В цикле for
указывается переменная и множество
значений, по которому будет пробегать переменная. Множество значений может быть
задано списком, кортежем, строкой или диапазоном.Вот простейший пример использования цикла, где в качестве множества значений используется кортеж:
i = 1
for color in 'red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet':
print(i,'-th color of rainbow is ', color, sep = '')
i += 1
В этом примере переменная
color
последовательно принимает значения 'red'
,
'orange'
и т.д. В теле цикла
выводится сообщение, которое содержит название цвета, то есть значение
переменной color
, а также
номер итерации цикла число, которое сначала равно 1, а потом
увеличивается на один (инструкцией i += 1
с каждым проходом цикла.В списке значений могут быть выражения различных типов, например:
for i in 1, 2, 3, 'one', 'two', 'three':
print(i)
При первых трех итерациях цикла переменная
i
будет принимать значение типа int
, при последующих трех — типа str
.
Функция range
Как правило, циклы for
используются либо для повторения какой-либо последовательности действий
заданное число раз, либо для изменения значения переменной в цикле от
некоторого начального значения до некоторого конечного.Для повторения цикла некоторое заданное число раз
n
можно использовать цикл for
вместе с функцией range
:for i in range(n):
Тело цикла
В качестве
n
может
использоваться числовая константа, переменная или произвольное арифметическое
выражение (например, 2 ** 10
).
Если значение n
равно нулю
или отрицательное, то тело цикла не выполнится ни разу.Если задать цикл таким образом:
for i in range(a, b):
Тело цикла
то индексная переменная
i
будеть принимать значения от a
до b - 1
, то есть первый
параметр функции range
,
вызываемой с двумя параметрами, задает начальное значение индексной переменной,
а второй параметр — значение, которая индексная переменная принимать не
будет. Если же a
≥b
, то цикл не будет выполнен ни разу.
Например, для того, чтобы просуммировать значения чисел от 1 до n
можно воспользоваться следующей
программой:sum = 0
for i in range(1, n + 1):
sum += i
В этом примере переменная
i
принимает значения 1, 2, ..., n
,
и значение переменной sum
последовательно увеличивается на указанные значения.Наконец, чтобы организовать цикл, в котором индексная переменная будет уменьшаться, необходимо использовать функцию
range
с тремя параметрами. Первый параметр задает начальное значение индексной
переменной, второй параметр — значение, до которого будет изменяться
индексная переменная (не включая его!), а третий параметр — величину
изменения индексной переменной. Например, сделать цикл по всем нечетным числам
от 1 до 99 можно при помощи функции range(1,
100, 2)
, а сделать цикл по всем числам от 100 до 1 можно при
помощи range(100, 0, -1)
.Более формально, цикл
for i in range(a,
b, d)
при d > 0
задает значения индексной переменной i = a
,
i = a + d
, i = a + 2 * d
и так для всех значений,
для которых i < b
. Если
же d < 0
, то переменная
цикла принимает все значения i > b
.