📖 Теория: повторяем while, break, continue, random

⚡ Кратко

Этот урок — практика, поэтому теория краткая. Цикл while повторяет код, пока условие истинно. break выходит из цикла, continue переходит к следующей итерации. Модуль random генерирует случайные числа, а math — округляет.

  • while условие: — цикл с предусловием.
  • break — немедленный выход; continue — пропуск остатка итерации.
  • math.ceil, math.floor, round — округление вверх, вниз и до ближайшего.
  • random.randint(a, b) — случайное целое от a до b включительно.

Повторяем цикл while

Цикл while выполняет тело, пока условие в заголовке истинно. Перед каждой итерацией Python заново вычисляет условие. Стандартный паттерн: инициализация переменной → проверка условия → тело → изменение переменной.

📄 examples/counter.py
i = 1
while i <= 5:
    print(i)
    i += 1
# Output: 1 2 3 4 5

break и continue

break полностью прерывает цикл. Его удобно использовать для выхода по команде пользователя или при нахождении ответа. continue пропускает оставшуюся часть текущей итерации и сразу переходит к проверке условия.

📄 examples/break_continue_recap.py
total = 0

while True:
    num = int(input("Enter a number (0 to stop): "))
    if num == 0:
        break
    if num < 0:
        continue
    total += num

print(f"Total: {total}")
⚠️ Важно: если continue стоит до изменения переменной цикла, цикл может стать бесконечным. Всегда обновляйте счётчик до пропуска итерации.

Округление в модуле math

Модуль math содержит функции для округления вверх и вниз. Это полезно в задачах кассы, округления сумм и расчёта количества купюр.

📄 examples/rounding.py
import math

number = 4.3
print(math.ceil(number))   # 5 (up)
print(math.floor(number))  # 4 (down)
print(round(number))       # 4 (nearest)

Модуль random

Для игры «Угадай число» используется random.randint(a, b). Она возвращает целое число, включая обе границы. Это отличает её от random.randrange, где верхняя граница не входит в диапазон.

📄 examples/random_recap.py
import random

secret = random.randint(1, 10)
print(f"Secret number: {secret}")

Обработка цифр числа

Многие задачи практикума требуют разбирать число на цифры. Для этого используют деление по модулю % 10 (последняя цифра) и целочисленное деление // 10 (отбрасывание последней цифры).

📄 examples/digits.py
number = 1234
while number > 0:
    digit = number % 10
    print(digit)
    number //= 10
# Output: 4 3 2 1
💡 На заметку: в задачах на упорядоченность цифр важно сравнивать цифры в правильном направлении. При извлечении цифр справа налево текущая цифра должна быть не больше предыдущей, чтобы число было отсортировано по возрастанию.