Урок 7. Цикл `while`
Урок 7. Цикл while
Section titled “Урок 7. Цикл while”Тривалість: 35–45 хв
XP за урок: 150
🎯 Місія
Section titled “🎯 Місія”Навчитися повторювати код, поки певна умова залишається правдивою.
💡 Пояснення простою мовою
Section titled “💡 Пояснення простою мовою”while — це лічильник-сирена, який працює, поки триває «тривога». Умова — це вимикач: доки вона правдива (True), Python крутить одну й ту саму дію. Щойно умова стала хибною (False) — сирена вимикається, і код іде далі.
А break — це червона кнопка всередині циклу: коли її натискають, цикл миттєво зупиняється, хоч би якою була умова. Зручно, коли хочеш зупинитись одразу, як отримав правильну відповідь.
Але увага: якщо змінна всередині while ніколи не змінюється, цикл крутиться вічно! Це називається нескінченним циклом.
🧠 1. while
Section titled “🧠 1. while”hp = 5
while hp > 0: print("HP:", hp) hp -= 1
print("Game Over")Як це працює крок за кроком:
graph TD
A["hp = 5"] --> B{"hp > 0 ?"}
B -->|"так"| C["print('HP:', hp)"]
C --> D["hp -= 1"]
D --> B
B -->|"ні"| E["print('Game Over')"]
⚠️ 2. Нескінченний цикл
Section titled “⚠️ 2. Нескінченний цикл”x = 1
while x < 10: print(x)Що тут не так?
x ніколи не змінюється.
Правильно:
x = 1
while x < 10: print(x) x += 1🛑 3. break
Section titled “🛑 3. break”while True: password = input("Password: ")
if password == "python": print("Correct!") break🧩 Розбираємо по рядках
Section titled “🧩 Розбираємо по рядках”while True: password = input("Password: ")
if password == "python": print("Correct!") breakwhile True:— кнопка «працювати завжди», умова ніколи не стає хибною сама.- Тому ми самі маємо зупинити цикл за допомогою
break. password = input("Password: ")— питаємо пароль у користувача.if password == "python":— перевіряємо, чи пароль правильний.- Якщо так — друкуємо
"Correct!"і натискаємоbreak, що миттєво вимикає цикл. - Якби не було
break, цикл питав би пароль нескінченно!
✏️ Вправи
Section titled “✏️ Вправи”Вправа 1
Section titled “Вправа 1”Виведи числа 1–10 через while.
Вправа 2
Section titled “Вправа 2”Зроби countdown 10–1 через while.
Вправа 3 — Password
Section titled “Вправа 3 — Password”Питай пароль, доки користувач не введе правильний.
⭐ Challenge — Monster Battle
Section titled “⭐ Challenge — Monster Battle”monster_hp = 50damage = 8Герой атакує монстра, поки monster_hp > 0.
Після кожної атаки показуй HP монстра.
Не дозволяй HP у фінальному повідомленні виглядати як -6. Подумай, як це можна акуратно показати.
🧠 for чи while?
Section titled “🧠 for чи while?”for зручний, коли ми приблизно знаємо скільки разів повторити дію.
while — коли повторення залежить від умови.
🐞 Debug Challenge
Section titled “🐞 Debug Challenge”energy = 10
while energy > 0: print("Running...") energy + 1Знайди дві логічні проблеми.
⚡ Перевір себе
Section titled “⚡ Перевір себе”- Розкажи, коли зручно використати
for, а колиwhile. - Що таке нескінченний цикл і як його уникнути?
- Що робить
break? Чи обов’язково він потрібен уwhile? - Скільки разів виконається тіло циклу, якщо
hp = 5і всередині єhp -= 1, покиhp > 0?
✅ Можна рухатись далі, якщо Марко може
Section titled “✅ Можна рухатись далі, якщо Марко може”- написати
while; - уникнути нескінченного циклу;
- використати
break; - пояснити, коли краще
for, а колиwhile.
🏠 Домашня місія
Section titled “🏠 Домашня місія”Створи гру guess_password.py з необмеженою кількістю спроб.