Глава 13 Цикл while

⏱️ Час на опанування теми: 15 хвилин

🤷 Для чого ми це вивчаємо:

🔑 Результати навчання:

  • Розуміння що таке програма, додаток та програмне забезпечення
  • Розуміння що таке алгоритм, кодування та програмування

🎈 Увага: Наразі ця глава знаходиться у стані активної розробки і ймовірно буде змінюватись і доповнюватись!


У цій главі ми познайомимось з…


Цикл for – не єдиний тип циклів, які реалізовані у Python. Також існує так званий while цикл. Якщо цикл for виконував тіло циклу певну кількість разів, яка була відома перед початком циклу, то цикл while буде виконувати код поки певна умова є істинною. Такий цикл легше всього пояснити за допомгою блок-схеми:

Ця блок-схема досить схожа на умовний перехід if/else. Різниця полягає в тому, що сценарій або поток Так після тіла циклу переходить назад на початок умови, тоді як поток Ні вказує на наступну після циклу інструкцію.

А ось і приклад цикла while у Python:

i = 0
while (i < 3):
    print(i)
    i = i + 1
## 0
## 1
## 2

Цикл while складається з наступних частин:

  • while: ключове слово яке свідчить про те, що далі буде цикл while
  • (i < 3): умова, відносно якої буде прйматися рішення чи виконувати тіло цикла
  • :: двокрапка, що позначає початок блоку коду
  • print(i) та i = i + 1: рядки тіла циклу, тобто інструкції які будуть виконані, якщо умова є істинною

Як і в умовному переході if/else та циклі for, інструкції тіла цикла повинні починатись з відступу. Замість i < 3 може бути будь яка змінна чи вираз які повертають значення типу bool: True або False. Якщо ми підставимо замість i < 3 значення True, то ми потрапимо до безкінечного циклу – тіло циклу буде виконуватись потійно, в чому не так багато сенсу.

Давайте “розгорнемо” наш цикл, тобто пропишемо усю послідновність інструкцій, ітерацію за ітерацією:

i = 0

# 0 < 3 є істинною, тому виконуємо тіло циклу
print(i) # друкуємо 0
i = i + 1 # тепер i дорівнює 1

# 1 < 3 є істинною, тому виконуємо тіло циклу
print(i) # друкуємо 1
i = i + 1 # тепер i дорівнює 2

# 2 < 3 є істинною, тому виконуємо тіло циклу
print(i) # друкуємо 2
i = i + 1 # тепер i дорівнює 3

# 3 < 3 не є істинною, тому виконуємо пропускаємо тіло циклу і йдемо далі

У циклах ми можемо ще використати ключові слова break та continue. Команда break дозволяє вийти з циклу завчасно, а continue – пропустити усі інструкції в ітерації та повернутись до перевірки умови. З ними ми докладніше познайомимось у вправах, посилання на які ви знайдете нагорі.

Цикл while не такий поширений як цикл for в конексті AI, ML та DS. Це тому що більшість задач які встають у цих галузях, можна вирішити за допомгою for. Тим паче, що використовючи цикл while, існує ймовірність попасти у нескінченний цикл. В цьому нічого страшного не має, але бувають моменти коли помилку в коді досить важко знайти.



🤸 Вправи
1. Що буде результатом виконання наступного коду?
x = 0
while x < 5:
    x = x + 1
print(x)
Оберіть правильну відповідь:
2. Який код виведе парні числа від 1 до 10?
1. x = 2
while x <= 10:
    print(x)
    x += 2

2. x = 1
while x <= 5:
    print(x * 2)
    x += 1
Оберіть правильну відповідь:
3. Що буде результатом виконання наступного коду?
x = 5
while x > 0:
    print(x)
    x = x - 1
Оберіть правильну відповідь: