Ми послуговуємося циклами у програмуванні для повторення групи команд. Ми зазвичай називаємо повторення терміном ітерація.
Ми використовуємо цикл for, якщо заздалегідь знаємо, скільки повторень матиме цикл. У інших випадках користуємося циклом while.
Простий цикл for
Основним застосуванням циклу for є просто повторення набору команд. Використовуючи for i in range(10), ми повторюємо набір команд 10 разів. Команди, які потрібно повторити, мають містити відступ. Ось як ми пишемо Привіт десять разів:
for i in range(10):
print("Привіт")
Керуюча змінна
Під час циклу значення керуючої змінної (у наведеному вище прикладі це i) змінюється. Тож у кожній ітерації циклу ми можемо робити щось дещо інше залежно від поточного значення цієї змінної. Яких значень набуває керуюча змінна, визначається частиною після in. Якщо ми використовуємо базовий range, керуюча змінна буде поступово збільшуватися на одиницю. Наприклад, цей цикл друкує числа від 0 до 9:
for i in range(10):
print(i)
У межах циклу ми можемо використовувати декілька змінних, але лише для керуючої змінної значення змінюється автоматично. Розглянемо цей приклад:
y = 1
z = 2
for x in range(10):
y = x + y + z
print(x, y, z)
Керуючою змінною циклу є x, значення якої змінюватиметься поступово (від 0 до 9). Для змінної y значення зміниться, оскільки в циклі ми маємо оператор присвоєння y. Значення змінної z залишатиметься незмінним у всіх ітераціях, оскільки z не є керуючою змінною, і ми нічого не призначаємо їй у циклі.
Використання range
У базовому використанні ми поєднуємо цикл for із функцією range, яка повертає інтервал чисел, а керуюча змінна згодом отримує значення з цього інтервалу.
Увага: в інформатиці ми часто рахуємо від нуля (а не від одиниці, як звичайні люди). Ми також зустрічаємося з цим і тут: range(n) повертає значення від 0 до n-1.
Якщо ми введемо два параметри у функцію range, тобто викличемо range(a, b), це дасть нам інтервал чисел від a до b-1. Ми також можемо ввести третій параметр, який визначає довжину стрибка. Приклади:
for x in range(5, 13): print(x, end=" ") # 5 6 7 8 9 10 11 12
for x in range(5, 16, 3): print(x, end=" ") # 5 8 11 14
for x in range(8, 0, -1): print(x, end=" ") # 8 7 6 5 4 3 2 1
Цикл for можна використовувати не лише разом із range, а й у більш загальному вигляді. Наприклад, ми можемо послуговуватися списками:
for x in [3, 7, 10]:
print(x)
Приклади використання циклу for
Перелік інформації про парність і непарність перших n чисел:
n = 20
for i in range(1, n+1):
if i % 2 == 0:
print(i, "парне")
else:
print(i, "непарне")
Обчислення суми чисел від 1 до n:
n = 10
s = 0
for i in range(1, n+1):
s = s + i
print("Сума чисел від 1 до", n, "є", s)
Перелік інформації про перші n ступенів двійки:
n = 10
for x in range(1, n+1):
print("Два в степені", x, "це", 2**x)