Для організації циклічних алгоритмів можна використати цикл з параметром for.
for <параметр циклу> in <об'єкт>
<блок команд>
<об'єкт> може бути рядком, списком, словником тощо.
У циклічних алгоритмах часто застосовують функцію range - діапазон.
for i in range(0, 5):
print ('Hello')
Результат:
Hello
Hello
Hello
Hello
Hello
Спершу змінна i набуває значення 0 і друкується слово "Hello". Далі відбувається повернення у цикл: змінна набуває значення 1 та знову друкується слово "Hello", і так далі. Останнім значенням змінної i буде 4 і знову надрукується слово "Hello". Таким чином, після виконання циклу на екрані з'явиться привітання 5 разів (від 0 до 4).
food = ['pizza', 'soup', 'butter']
for i in food:
print (i)
print (i)
Результат:
pizza
pizza
soup
soup
butter
butter
Змінна i спершу набуває першого значення зі списку food — 'pizza'. Далі виконується двічі команда print(i), що друкує значення змінної i, тобто на екрані двічі з'явиться слово pizza. Після цього відбувається повернення у цикл: змінна i стає словом soup, яке теж друкується на екрані двічі. І т. д.
Для організації циклів з передумовою використовують оператор while.
while <умова>:
<блок команд>
Наприклад, щоб вивести слово “Hello” 5 разів, можна написати такий скрипт:
i = 5
while i > 0:
print ('Hello')
i -= 1 # скорочений запис команди i = i - 1 (зменшення числа на одиницю)
Результат:
Hello
Hello
Hello
Hello
Hello
!!! Змінна, задіяна в умові, обов'язково повинна змінюватись у тілі циклу. Без цього команди можуть «зациклитись», тобто виконуватимуться безупинно.
У даному прикладі у першому рядку змінна i набуває значення 5. Цикл розпочинається службовим слово while: відбувається перевірка умови i > 0. Очевидно, що 5 > 0, тому команди у тілі циклу виконуватись будуть. Тіло циклу складатиметься з двох команд print ('Hello') та i -= 1, бо вони відділені від початку рядка однаковою кількістю пробілів. Отже, буде надруковано слово "Hello" та змінна i зменшиться на одиницю. Тепер змінна i дорівнює 4. Повертаємося у цикл та знову перевіряємо умову i > 0: очевидно, що 4 > 0, тому знову надрукується слово "Hello" та змінна i стане 3-кою. І т. д. Цикл припиниться аж тоді, коли i стане нулем, бо умова i > 0 при такому значення є хибною.
Щоб створити цикл з післяумовою, можна використати таку конструкцію:
while True:
<блок команд>
if <умова>: break