Цикл while: повторение до выполнения условия
Что такое цикл while и зачем он нужен? 🔄
Цикл while — это инструмент для повторения действий, пока выполняется определённое условие. В отличие от for, который работает с известным количеством элементов, while крутится до тех пор, пока условие истинно.
Пример из жизни:
Представьте, что вы ждёте автобус 🚌. Пока его нет (not bus_arrived), вы продолжаете стоять на остановке. Как только автобус приехал — условие меняется, и вы заходите внутрь.
Базовая структура цикла while
Синтаксис прост:
while условие:
# Тело цикла — код, который повторяется
print("Выполняюсь, пока условие True!")
🔄 Как это работает?
- Проверяется условие. Если оно
True— выполняется тело цикла. - После каждого прохода условие проверяется снова.
- Если условие стало
False— цикл завершается.
Простой пример: счётчик до 5
count = 1
while count <= 5:
print(f"Счёт: {count}")
count += 1 # Увеличиваем count на 1 каждый раз
print("Цикл завершён!")
Вывод:
Счёт: 1
Счёт: 2
Счёт: 3
Счёт: 4
Счёт: 5
Цикл завершён!
Разбор:
- Начальное значение count = 1.
- Пока count <= 5, печатаем число и увеличиваем его.
- Когда count становится 6 (6 <= 5 → False), цикл останавливается.
Бесконечный цикл: как не попасть в ловушку? ⚠️
Если условие всегда True, цикл станет бесконечным. Например:
while True:
print("Бесконечность...")
Как остановить?
- Вручную: Ctrl + C в терминале (если зависло).
- Программно: Используйте break (об этом ниже).
Управление циклом: break и continue
🛑 break — экстренная остановка
Прерывает цикл, даже если условие ещё True.
password = ""
while password != "secret":
password = input("Введите пароль: ")
if password == "exit":
print("Выход...")
break
print("Неверный пароль!")
else:
print("Добро пожаловать!") # Выполнится, если вышли не через break
Сценарии:
- Ввели secret → цикл завершился сам (else выполнился).
- Ввели exit → сработал break, else пропущен.
⏭ continue — пропуск итерации
Переходит к следующей проверке условия, не завершая цикл.
num = 0
while num < 10:
num += 1
if num % 2 == 0: # Чётные числа пропускаем
continue
print(num)
Вывод:
1
3
5
7
9
Практика: игра «Угадай число» 🎲
Давайте напишем мини-игру, где компьютер загадывает число от 1 до 10, а пользователь пытается его угадать.
import random
secret_number = random.randint(1, 10)
guess = None
while guess != secret_number:
guess = int(input("Угадайте число от 1 до 10: "))
if guess < secret_number:
print("Слишком мало!")
elif guess > secret_number:
print("Слишком много!")
print(f"Поздравляем! Вы угадали: {secret_number}")
Логика:
- Пока guess не равен secret_number, запрашиваем ввод.
- Подсказываем игроку ("мало" или "много").
- При угадывании — выводим победу и завершаем цикл.
Когда использовать while вместо for?
✅ while — если не знаете, сколько итераций потребуется (например, обработка ввода пользователя).
✅ for — когда есть последовательность (список, строка, диапазон и т.д.).
Совет от Данилы Бежина (https://www.youtube.com/@DanilaBezhin):
«
while— это как спрашивать "Ты готов?" до тех пор, пока не получишь "Да".for— это как перебирать все пункты в чек-листе».
Итог
- 🔄 Цикл
whileвыполняется, пока условие истинно. - 🛑
breakостанавливает цикл,continueпропускает итерацию. - ⚠️ Следите за бесконечными циклами — добавляйте "стоп-условия".
- 🎯 Используйте
whileдля задач с неизвестным числом повторений.
Теперь потренируйтесь: напишите программу, которая спрашивает у пользователя числа, пока их сумма не превысит 100. Удачи! 🚀