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

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

for i in range(n):
    Тело цикла

Например:

sum = 0
sum_sq = 0
for i in range(3):
    sq_i = i * i
    print(i, sq_i)
    sum += i
    sum_sq += sq_i
print(sum, sum_sq)

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

Код выше эквивалентен такому:

sum = 0
sum_sq = 0
i = 0
sq_i = i * i
print(i, sq_i)
sum += i
sum_sq += sq_i
i = 1
sq_i = i * i
print(i, sq_i)
sum += i
sum_sq += sq_i
i = 2
sq_i = i * i
print(i, sq_i)
sum += i
sum_sq += sq_i
print(sum, sum_sq)

Если задать цикл таким образом:

for i in range(a, b):
    Тело цикла

то индексная переменная i будет принимать значения от a до b - 1, то есть первый параметр функции range, вызываемой с двумя параметрами, задаёт начальное значение индексной переменной, а второй параметр — значение, которая индексная переменная принимать не будет. Если же a≥b, то цикл не будет выполнен ни разу. Например, для того, чтобы просуммировать значения чисел от до 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.

Последнее изменение: Суббота, 15 Август 2020, 02:35