🏠 Домашнее задание

⚡ Суть задания

Два задания из LMS: отсортировать три введённых числа вручную и определить, является ли год високосным. Обе задачи решаются через if-elif-else и операторы сравнения.

Результат: два файла homework_sort.py и homework_leap_year.py, которые запрашивают данные и выводят правильный ответ.

📋 Формулировка задания

Исходное задание из LMS:

  1. Сортировка чисел. Напишите программу, которая запрашивает у пользователя три числа и выводит их в порядке возрастания, разделённые запятой.
    Введите первое число: 5
    Введите второе число: 2
    Введите третье число: 7
    Числа в порядке возрастания: 2, 5, 7
  2. Високосный год. Напишите программу, которая запрашивает у пользователя год и проверяет, является ли он високосным. Год является високосным, если он делится на 4 без остатка, и в то же время не делится на 100 без остатка. При этом если год делится на 400 без остатка, он тоже является високосным.
    Введите год: 2024
    Год является високосным.
    
    Введите год: 1900
    Год не является високосным.

🔧 Шаг 0. Подготовка окружения

Перед началом работы настройте рабочую папку для текущего урока.

1

Создайте папку для урока

# В терминале VS Code (Ctrl + `):
mkdir -p python-fundamentals-practice/lesson-08
cd python-fundamentals-practice/lesson-08
2

Создайте виртуальное окружение (опционально)

# Windows
python -m venv venv
venv\Scripts\activate

# Mac / Linux
python3 -m venv venv
source venv/bin/activate
3

Создайте ветку для задания

# В корне репозитория
git checkout -b lesson/08-branching-statements

# Отправьте ветку на удалённый репозиторий, если он настроен
git push -u origin lesson/08-branching-statements

🛠️ Шаги выполнения задания

1

Задание 1. Сортировка трёх чисел

Создайте файл homework_sort.py и реализуйте ручную сортировку трёх чисел с помощью if и обмена значений.

# homework_sort.py
first = int(input("Введите первое число: "))
second = int(input("Введите второе число: "))
third = int(input("Введите третье число: "))

# Сначала находим максимальное число и ставим его на третью позицию
if first > second and first > third:
    first, third = third, first
elif second > first and second > third:
    second, third = third, second

# Теперь первые два числа осталось отсортировать между собой
if first > second:
    first, second = second, first

print("Числа в порядке возрастания: ", end="")
print(first, second, third, sep=", ")

Проверка в VS Code:

  1. Сохраните файл.
  2. В терминале запустите: python homework_sort.py.
  3. Введите три числа и убедитесь, что вывод отсортирован.
Проверить по документации: в Python есть встроенная функция sorted(), которая сортирует значения автоматически. Она удобна в реальных проектах, но в рамках этого задания цель — потренировать логику ветвлений.
2

Задание 2. Високосный год

Создайте файл homework_leap_year.py и проверьте условие високосности.

# homework_leap_year.py
year = int(input("Введите год: "))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print("Год является високосным.")
else:
    print("Год не является високосным.")

Проверка в VS Code:

  1. Сохраните файл.
  2. Запустите: python homework_leap_year.py.
  3. Проверьте годы: 2024 (високосный), 2000 (високосный), 1900 (не високосный), 2023 (не високосный).

✅ Полное решение

Ниже приведены оба файла целиком.

📄 homework_sort.py
first = int(input("Введите первое число: "))
second = int(input("Введите второе число: "))
third = int(input("Введите третье число: "))

if first > second and first > third:
    first, third = third, first
elif second > first and second > third:
    second, third = third, second

if first > second:
    first, second = second, first

print("Числа в порядке возрастания: ", end="")
print(first, second, third, sep=", ")
📄 homework_leap_year.py
year = int(input("Введите год: "))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print("Год является високосным.")
else:
    print("Год не является високосным.")

🧪 Как проверить решение

  1. Активируйте venv: venv\Scripts\activate (Windows) или source venv/bin/activate (Mac/Linux).
  2. Запустите python homework_sort.py и проверьте сортировку для нескольких наборов чисел.
  3. Запустите python homework_leap_year.py и проверьте крайние случаи: 1900, 2000, 2024, 2023.
  4. Убедитесь, что программа не падает при вводе целых чисел.

🐛 Отладка в VS Code

Если что-то не работает:

  1. Поставьте точку останова (breakpoint) на строке с условием.
  2. Нажмите F5 или выберите «Run → Start Debugging».
  3. В панели Debug смотрите значения переменных first, second, third или year.
  4. Проверьте Terminal на наличие traceback — Python показывает номер строки с ошибкой.

💾 Сохранение работы

# Добавьте файлы урока
git add python-fundamentals-practice/lesson-08/

# Сделайте коммит с осмысленным сообщением
git commit -m "lesson-08: branching statements — sort 3 numbers and leap year"

# Отправьте на GitHub / GitLab
git push

💡 Советы и типичные ошибки

  • Не забудьте преобразовать ввод input() в число через int().
  • В сортировке важен порядок обмена: сначала максимум на последнее место, затем первые два между собой.
  • В условии високосности используйте скобки, чтобы явно показать порядок проверок.