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

⚡ Кратко

Сначала решите задачу самостоятельно. Затем сравните ход решения, найдите отличие и повторите проблемный фрагмент без подсказки.

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

Решение задания 1: знак числа

📄 task_01_sign.py
number = int(input("Введите число: "))

if number > 0:
    print("Число положительное.")
elif number < 0:
    print("Число отрицательное.")
else:
    print("Число равно нулю.")

Логика решения: цепочка if-elif-else проверяет три взаимоисключающих варианта. Поскольку число не может быть одновременно больше и меньше нуля, такая конструкция идеально подходит.

Решение задания 2: стоимость билета

📄 task_02_ticket.py
ticket_type = input("Введите тип билета (стандартный/vip): ")
age = int(input("Введите возраст: "))

# Базовая цена по типу билета
if ticket_type == "vip":
    price = 3000
else:
    price = 1000

# Применение скидок
if age < 12:
    price *= 0.50
elif age > 60 and ticket_type == "стандартный":
    price *= 0.70

print("Стоимость билета:", price)

Логика решения: базовая цена выбирается первым if-else. Скидки — отдельным блоком, где elif гарантирует, что скидка для пожилых не наложится на детскую: если возраст меньше 12, проверка age > 60 уже не выполнится. Обратите внимание, что для VIP пожилые не получают скидку, потому что условие требует ticket_type == "стандартный".

Решение задания 3: время года (★ продвинутое)

📄 task_03_season.py
month = int(input("Введите номер месяца: "))

match month:
    case 12 | 1 | 2:
        print("Зима")
    case 3 | 4 | 5:
        print("Весна")
    case 6 | 7 | 8:
        print("Лето")
    case 9 | 10 | 11:
        print("Осень")
    case _:
        print("Некорректный номер месяца")

Логика решения: match-case сравнивает одну переменную с несколькими группами значений. Оператор | объединяет варианты внутри одного шаблона, а _ обрабатывает всё остальное. Это решение работает только в Python 3.10+.