🧩 Ответы на тестовые вопросы
Вопрос 1
Ответ: b) x больше 5, но меньше или равно 15.
Разбор: x = 10, условие x > 15 ложно, x > 5 истинно, поэтому выполняется ветка elif.
Вопрос 2
Ответ: c) обе строки.
Разбор: это два независимых if, а не if-elif. Оба условия истинны, оба блока выполняются.
Вопрос 3
Ответ: b) Нечётное.
Разбор: 7 % 2 == 0 ложно, поэтому выбирается значение после else.
Вопрос 4
Ответ: b) Это целое число.
Разбор: case int() сопоставляет значение с типом int. 10 — целое число.
Вопрос 5
Ответ: b) 4.
Разбор: round(3.5) округляет до ближайшего чётного. 4 чётное.
Вопрос 6
Ответ: b) False.
Разбор: 0.1 + 0.2 в двоичном виде даёт 0.30000000000000004, поэтому равенство не выполняется.
Вопрос 7
Ответ: a) True.
Разбор: Decimal('0.1') хранит число в десятичном виде точно, поэтому сумма равна Decimal('0.3').
Задание 1. Возрастная категория
📄 solutions/age_category.py
age = int(input("Введите ваш возраст: "))
if age <= 2:
category = "Младенец"
elif age <= 12:
category = "Ребёнок"
elif age <= 17:
category = "Подросток"
else:
category = "Взрослый"
print(f"Категория: {category}.")
💡 Логика: условия проверяются по порядку. Если возраст не <= 2, проверяем <= 12 и так далее. Благодаря этому не нужно писать двусторонние диапазоны.
Задание 2. Сортировка трёх чисел (ручной способ)
📄 solutions/sort_three_manual.py
a = int(input("Первое число: "))
b = int(input("Второе число: "))
c = int(input("Третье число: "))
if a > b:
a, b = b, a
if b > c:
b, c = c, b
if a > b:
a, b = b, a
print(f"{a}, {b}, {c}")
💡 Логика: после первого сравнения
a <= b, после второго b <= c, но a могло стать больше нового b, поэтому нужно третье сравнение.
Задание 2. Альтернативное решение через sorted()
📄 solutions/sort_three_builtin.py
a = int(input("Первое число: "))
b = int(input("Второе число: "))
c = int(input("Третье число: "))
result = sorted([a, b, c])
print(", ".join(str(n) for n in result))
Задание 3. Високосный год
📄 solutions/leap_year.py
year = int(input("Введите год: "))
is_leap = (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)
if is_leap:
print(f"{year} год является високосным.")
else:
print(f"{year} год не является високосным.")
💡 Логика: основное правило — год делится на 4, но не на 100. Исключение — год делится на 400. Скобки улучшают читаемость, хотя приоритет
and выше or.
Задание 4. Математическое округление
📄 solutions/math_rounding.py
import math
x = float(input("Введите вещественное число: "))
fraction = abs(x - int(x))
if x >= 0:
result = math.ceil(x) if fraction >= 0.5 else math.floor(x)
else:
result = math.floor(x) if fraction >= 0.5 else math.ceil(x)
print(f"Округленное значение: {result}")
💡 Логика: для положительных чисел 0.5 округляем вверх через
ceil, меньше 0.5 — вниз через floor. Для отрицательных чисел «вверх от нуля» тоже даёт floor.
Задание 5. Гипотенуза
📄 solutions/hypotenuse.py
import math
a = float(input("Введите длину первого катета: "))
b = float(input("Введите длину второго катета: "))
hypotenuse = math.sqrt(a ** 2 + b ** 2)
print(f"Длина гипотенузы: {hypotenuse}")
💡 Логика: по теореме Пифагора
c = sqrt(a² + b²). Модуль math даёт точное и понятное решение.