deшка
Урок 3.1

Как устроен модуль и песочница

Для кого этот модуль, из чего он состоит, как работает песочница и самопроверка из трёх задач.

Этот модуль не учит Python с нуля. Он про то, что инженер данных должен понимать в языке, чтобы писать загрузки, которые не падают по ночам и не съедают всю память: как устроены объекты и ссылки, когда список превращается в генератор, как работают декораторы и исключения, где в пайплайне уместен класс. Синтаксис условий, циклов, функций и базовые коллекции здесь считаются известными.

Вторая задача модуля: собеседования. Почти все вопросы по Python, которые задают инженерам данных, крутятся вокруг десятка тем, и это не «напишите веб-сервер», а «чем is отличается от ==», «что такое генератор», «что выведет этот код». Каждый урок разбирает свою группу таких вопросов не как список ответов для заучивания, а через механизм, который за ними стоит. Если механизм понятен, ответ получается сам.

Если базовый синтаксис пока не знаком, сначала пройдите вводный курс, например «Поколение Python» на Stepik или Python для начинающих на Хекслете, и возвращайтесь. Понять, нужно ли это вам, поможет самопроверка в конце урока.

Что внутри

  1. Как Python устроен внутри: объекты и ссылки, память и сборщик мусора, коллекции и сложность операций, функции и передача аргументов, декораторы, итераторы и генераторы, классы, исключения.
  2. Python в работе инженера данных: файлы и форматы, базы из Python, HTTP и API, pandas там, где он уместен, скрипт как сервис, тесты для трансформаций.

Первый блок отвечает на вопросы «что выведет этот код» и «почему загрузка съела 8 ГБ». Второй про код, который вы будете писать на работе.

Песочница

В уроках есть задачи в формате, похожем на LeetCode: у каждой своя вкладка, заготовка функции и таблица тестов «ввод / ваш вывод / ожидаемый». Код выполняется прямо в браузере настоящим CPython 3.12 (Pyodide), сервер в этом не участвует. Отсюда ограничения: нет сети, input() не работает, запуск дольше 15 секунд прерывается, а первая загрузка интерпретатора занимает несколько секунд и около 10 МБ трафика.

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

Пишите код так, как написали бы в рабочем репозитории: понятные имена, одна функция делает одно действие, без print для отладки внутри решения. Тесты сравнивают вывод построчно, поэтому лишняя печать ломает проверку.

Самопроверка

Ниже три задачи на то, что модуль считает известным: условия, циклы, словари и функции. Если все три решаются без подсказок, идите дальше. Если буксуют словари или функции, сначала закройте базу вводным курсом, иначе следующие уроки будут читаться тяжело.

python 3.12 · песочницарешено 0 / 3

Функция получает список заказов, каждый заказ это словарь с ключом status. Верните словарь «статус → число заказов». Порядок ключей: в порядке первого появления статуса.

Ctrl+Enter
ТЕСТЫ
ВводВаш выводОжидаемый вывод
[{"id": 1, "status": "paid"}, {"id": 2, "status": "new"}, {"id": 3, "status": "paid"}]—{'paid': 2, 'new': 1}
[]—{}
[{"id": 7, "status": "cancelled"}]—{'cancelled': 1}
скрытый тест 4
решённые задания сохранятся в прогресс после входа
Войти, чтобы отмечатьдальше →
3.2 →Объекты, ссылки и изменяемость