- 6 августа 2025
- 4 минуты
- 409
Понятие и организация цикла с параметром (for) в Python
Статью подготовили специалисты образовательного сервиса Zaochnik.
Цикл `for`
Цикл `for`, также известный как цикл с параметром, в языке Python предлагает широкий набор возможностей. В этом цикле задается переменная и набор значений, по которому она будет проходить. Набор значений можно представлять в виде
- списка,
- кортежа,
- строки или
- диапазона.
Использование цикла, в котором в качестве набора значений применяется кортеж:
```python
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 и увеличивается на 1 с помощью инструкции `i += 1` на каждом шаге цикла).
Список значений может содержать выражения различных категорий,
```python
for i in 1, 2, 3, 'one', 'two', 'three':
print(i)
```
Первые три итерации переменная `i` будет иметь тип `int`, а на следующих трех — `str`.
Функция `range`
Чаще всего циклы `for` применяются либо для многократного выполнения одной и той же операции, либо для изменения значения переменной от начального до конечного значения.
Чтобы циклу было задано количество повторений `n`, можно использовать его совместно с функцией `range`:
```python
for i in range(n):
# код тела цикла
```
В роли `n` можно использовать числовую константу, переменную или произвольную арифметическую формулу (к примеру, `4 ** 10`). В случае `n` равного нулю или является числом отрицательным, то тело цикла не выполнится ни одного разу.
Если цикл задан так:
```python
for i in range(a, b):
# Тело цикла
```
в таком случае переменная `i` будет принимать значения от `a` до `b - 1`. Имеется ввиду, что начальный параметр функции `range`, которая в свою очередь вызывается с двумя аргументами, указывает начальное значение переменной, а второй — значение, которое переменная принимать не будет. Если `a` больше или равно `b`, то цикл не выполнится. Например, чтобы просуммировать значения от 1 до `n`, можно написать следующую программу:
```python
sample_sum = 0
for i in range(1, n + 1):
sample_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`, принимая значения `i = a`, `i = a + d`, `i = a + 2 * d` и так далее, пока `i < b`. Если же `d < 0`, то переменная цикла будет принимать все значения `i > b`.