📝 Практические задания

⚡ Задание в двух словах

Напишите программу sales_report.py, которая читает файл продаж и создаёт отчёты по годам, месяцам и категориям.

  • Аргументы: python sales_report.py <input_file> <output_directory>.
  • Формат строки: имя,дата,сумма,категория,город.
  • Создайте папки output/YYYY/MM/ с monthly_report.txt и файлами категорий.
  • Записи в категориальных файлах отсортируйте по дате.

🏋️ Задание: Анализ продаж по категориям и датам

Напишите программу, которая обрабатывает текстовый файл с данными о продажах. Используйте файл sales_data.txt.

Цель: закрепить навыки работы с файлами, аргументами командной строки, модулями os и sys, а также группировки данных через defaultdict.

Требования к программе

  1. Принимать аргументы командной строки:
    python sales_report.py <input_file> <output_directory>
    • <input_file> — путь к входному файлу с продажами.
    • <output_directory> — папка, куда будут сохранены отчёты.
  2. Считать данные из текстового файла. Каждая строка содержит информацию в формате:
    имя,дата,сумма,категория,город
  3. Сгруппировать данные по годам и месяцам, создавая для каждого года и месяца отдельную папку в указанной директории.
  4. Создать общий отчёт по каждому месяцу (monthly_report.txt), в котором указана суммарная выручка по каждой категории и общая сумма:
    Automotive,109539
    Books,133160
    Clothing,102001
    Electronics,79403
    Groceries,104387
    Home Appliances,99911
    Sports,78782
    Full,707183
  5. Создать файлы для каждой категории товаров, в которых должны быть указаны все продажи по данной категории в формате:
    дата,имя продавца,сумма

    Все записи в файле должны быть отсортированы по дате.

Пример входных данных

Создайте файл sales_data.txt со следующим содержимым:

Olivia Suarez,2024-08-02,4565,Electronics,Dallas
Jennifer Jacobs,2023-08-19,4963,Automotive,London
Erin Johnson,2024-08-29,1796,Clothing,Miami
Cynthia Maddox,2025-02-01,538,Electronics,Chicago
Kendra Martinez,2025-02-01,3799,Electronics,New York
Rachel Miller,2025-02-02,1097,Electronics,Boston
Michael Brown,2024-12-15,8200,Automotive,Seattle
Sarah Davis,2025-01-10,1500,Clothing,Los Angeles
John Wilson,2025-01-12,2300,Electronics,Houston
Emma Taylor,2025-02-05,6500,Groceries,Phoenix

Пример запуска программы

python sales_report.py data/sales_data.txt reports

Пример созданной структуры

reports/
├── 2023/
│   ├── 08/
│   │   ├── monthly_report.txt
│   │   ├── Automotive.txt
├── 2024/
│   ├── 08/
│   │   ├── monthly_report.txt
│   │   ├── Clothing.txt
│   │   ├── Electronics.txt
│   ├── 12/
│   │   ├── monthly_report.txt
│   │   ├── Automotive.txt
├── 2025/
│   ├── 01/
│   │   ├── monthly_report.txt
│   │   ├── Clothing.txt
│   │   ├── Electronics.txt
│   ├── 02/
│   │   ├── monthly_report.txt
│   │   ├── Electronics.txt
│   │   ├── Groceries.txt

Критерии проверки

  • Программа корректно обрабатывает аргументы командной строки и сообщает об ошибке, если их недостаточно.
  • Создаются все необходимые папки и файлы.
  • monthly_report.txt содержит суммы по всем категориям и строку Full с общей суммой.
  • Файлы категорий содержат записи в формате дата,имя,сумма и отсортированы по дате.
  • Код разделён на функции, переменные и функции названы понятно.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Что важнее всего в практическом задании?

Вопрос 2

Как безопаснее двигаться в практикуме?

Вопрос 3

Что делать, если решение не совпадает с ожидаемым результатом?

Вопрос 4

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 5

Зачем использовать f-strings в современном Python?

Вопрос 6

Когда полезен ранний возврат из функции?