Оператор циклу з параметром. Теорія.

Організація циклів

Цикл 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.