✅ Решения заданий

⚠️ Рекомендация: попробуйте решить задания самостоятельно, прежде чем смотреть ответы. Решения — это последняя инстанция, когда собственные попытки исчерпаны.

Решение задания 1: Обратный отсчёт

📄 task_01_countdown.py
start = int(input("Введите начальное число: "))

while start > 0:
    print(start)
    start -= 1

print("Отсчёт завершён!")

Логика решения: переменная start уменьшается на 1 на каждой итерации. Цикл продолжается, пока start больше 0. Когда start становится 0, условие ложно и выполняется финальная строка.

Решение задания 2: Сумма положительных чисел

📄 task_02_sum_positive.py
total = 0

while True:
    num = int(input("Введите число: "))
    if num < 0:
        continue
    if num == 0:
        break
    total += num

print(f"Общая сумма положительных: {total}")

Логика решения: бесконечный цикл while True читает числа. Отрицательные пропускаются через continue, 0 завершает цикл через break, а положительные накапливаются в total.

Решение задания 3: Чётные числа через continue

📄 task_03_even_numbers.py
n = int(input("Введите N: "))
i = 1

while i <= n:
    if i % 2 != 0:
        i += 1
        continue
    print(i)
    i += 1

Логика решения: цикл перебирает числа от 1 до N. Если число нечётное, continue пропускает вывод. Обратите внимание: инкремент i += 1 написан и до continue, и после print(), чтобы избежать бесконечного цикла.

Решение задания 4: Факториал числа

📄 task_04_factorial.py
n = int(input("Введите n: "))
result = 1
i = 1

while i <= n:
    result *= i
    i += 1

print(f"Факториал {n} равен {result}")

Логика решения: переменная result накапливает произведение чисел от 1 до n. При n = 0 цикл не выполняется ни разу, и результат остаётся равным 1, что соответствует математическому определению 0! = 1.

💡 Альтернатива: для факториала в реальном коде чаще используют встроенную функцию math.factorial() или цикл for, но в учебных целях важно написать его именно через while, чтобы закрепить механизм цикла.