Тестовые задания по Python

Здесь собраны реальные тестовые задания, которые дают соискателям на стажировках и junior-позициях. Эти задания помогут лучше подготовиться к отбору, потренироваться и пополнить портфолио

стэк>
Компания>
Сложность>

UpTrader • Средняя сложность

Средний уровень сложности - 2 звезды

Тестовое задание по Python от компании UpTrader

Задача : Нужно сделать django app, который будет реализовывать древовидное меню, соблюдая следующие условия: 1) Меню реализовано через template tag 2) Все, что над выделенным пунктом - развернуто. Первый уровень вложенности под выделенным пунктом тоже развернут. 3) Хранится в БД. 4) Редактируется в стандартной админке Django 5) Активный пункт меню определяется исходя из URL текущей страницы 6) Меню на одной странице может быть несколько. Они определяются по названию. 7) При клике на меню происходит переход по-заданному в нем URL. URL может быть задан как явным образом, так и через named url. 8)На отрисовку каждого меню требуется ровно 1 запрос к БД Нужен django-app, который позволяет вносить в БД меню (одно или несколько) через админку, и нарисовать на любой нужной странице меню по названию. {% draw_menu 'main_menu' %} При выполнении задания из библиотек следует использовать только Django и стандартную библиотеку Python. При решении тестового задания у вас не должно возникнуть вопросов. Если появляются вопросы, вероятнее всего, у вас недостаточно знаний. Задание выложить на гитхаб.

MarketIntelligence • Средняя сложность

Средний уровень сложности - 2 звезды

Тестовое задание по Python от компании MarketIntelligence

Тестовое задание для стажера в Market Intelligence. Задача: Нужно сделать HTTP сервис для одноразовых секретов наподобие [https://onetimesecret.com/](https://onetimesecret.com/?locale=ru). Он должен позволить создать секрет, задать кодовую фразу для его открытия и cгенерировать код, по которому можно прочитать секрет только один раз. UI не нужен, это должен быть JSON Api сервис. Для написание сервиса можно использовать [FastAPI](https://github.com/tiangolo/fastapi) или любой другой фреймворк. - Метод `/generate` должен принимать секрет и кодовую фразу и отдавать `secret_key` по которому этот секрет можно получить. - Метод `/secrets/{secret_key}` принимает на вход кодовую фразу и отдает секрет. Требования: - Язык программирования: Python 3.7. - Использование [Docker](https://www.docker.com), сервис должен запускаться с помощью [`docker-compose up`](https://docs.docker.com/compose/reference/up/). - Требований к используемым технологиям нет. - Код должен соответствовать PEP, необходимо использование type hints, к публичным методам должна быть написана документация на английском языке. Усложнения: - Написаны тесты (постарайтесь достичь покрытия в 70% и больше). Вы можете использовать [pytest](https://docs.pytest.org/en/latest/) или любую другую библиотеку для тестирования. - Сервис асинхронно обрабатывает запросы. - Данные сервиса хранятся во внешнем хранилище, запуск которого также описан в `docker-compose`. Мы рекомендуем использовать [MongoDB](https://www.mongodb.com), но Вы можете использовать любую подходящую базу. - Секреты и кодовые фразы не хранятся в базе в открытом виде. - Добавлена возможность задавать время жизни для секретов. Можно попробовать реализовать это с помощью [TTL индексов](https://docs.mongodb.com/manual/core/index-ttl/).

Aviasales • Средняя сложность

Средний уровень сложности - 2 звезды

Тестовое задание по Python от компании Aviasales

Тестовое задание в команду ассистеда (Python/Go) В папке два XML – это ответы на поисковые запросы, сделанные к одному из наших партнёров. [RS_Via-3.xml](/backend/Python/Aviasales/RS_Via-3.xml) [RS_ViaOW.xml](/backend/Python/Aviasales/RS_ViaOW.xml) В ответах лежат варианты перелётов (тег `Flights`) со всей необходимой информацией, чтобы отобразить билет на Aviasales. На основе этих данных, нужно сделать вебсервис, в котором есть эндпоинты, отвечающие на следующие запросы: * Какие варианты перелёта из DXB в BKK мы получили? * Самый дорогой/дешёвый, быстрый/долгий и оптимальный варианты * В чём отличия между результатами двух запросов (изменение маршрутов/условий)? Язык реализации: `Go` Формат ответа: `json` По возможности использовать стандартную библиотеку. Язык реализации: `python3` Формат ответа: `json` Используемые библиотеки и инструменты — всё на твой выбор. Оценивать будем умение выполнять задачу имея неполные данные о ней, умение самостоятельно принимать решения и качество кода.

ООО МСтрой • Лёгкая сложность

Лёгкий уровень сложности - 1 звезда

Тестовое задание по Python от компании ООО МСтрой

ЗАДАНИЕ Есть массив объектов, которые имеют поля id и parent, через которые их можно связать в дерево и некоторые произвольные поля. Нужно написать класс, который принимает в конструктор массив этих объектов и реализует 4 метода: - getAll() Должен возвращать изначальный массив элементов. - getItem(id) Принимает id элемента и возвращает сам объект элемента; - getChildren(id) Принимает id элемента и возвращает массив элементов, являющихся дочерними для того элемента, чей id получен в аргументе. Если у элемента нет дочерних, то должен возвращаться пустой массив; - getAllParents(id) Принимает id элемента и возвращает массив из цепочки родительских элементов, начиная от самого элемента, чей id был передан в аргументе и до корневого элемента, т.е. должен получиться путь элемента наверх дерева через цепочку родителей к корню дерева. Порядок элементов важен! Требования: максимальное быстродействие, следовательно, минимальное количество обходов массива при операциях, в идеале, прямой доступ к элементам без поиска их в массиве. Исходные данные: ``` class TreeStore: pass items = [ {"id": 1, "parent": "root"}, {"id": 2, "parent": 1, "type": "test"}, {"id": 3, "parent": 1, "type": "test"}, {"id": 4, "parent": 2, "type": "test"}, {"id": 5, "parent": 2, "type": "test"}, {"id": 6, "parent": 2, "type": "test"}, {"id": 7, "parent": 4, "type": None}, {"id": 8, "parent": 4, "type": None} ] ts = TreeStore(items) ``` Примеры использования: ``` - ts.getAll() // [{"id":1,"parent":"root"},{"id":2,"parent":1,"type":"test"},{"id":3,"parent":1,"type":"test"},{" id":4,"parent":2,"type":"test"},{"id":5,"parent":2,"type":"test"},{"id":6,"parent":2,"type":"t est"},{"id":7,"parent":4,"type":None},{"id":8,"parent":4,"type":None}]# - ts.getItem(7) // {"id":7,"parent":4,"type":None} - ts.getChildren(4) // [{"id":7,"parent":4,"type":None},{"id":8,"parent":4,"type":None}] - ts.getChildren(5) // [] - ts.getAllParents(7) // [{"id":4,"parent":2,"type":"test"},{"id":2,"parent":1,"type":"test"},{"id":1,"parent":"root"}] ```

Получите доступ более чем к 500 тестовым заданиям
Сервис можно использовать бесплатно,
без ограничений. Чтобы получить полный доступ,
вам необходимо зарегистрироваться.
где найти тестовые задания для практики
пример тестового задания junior
тестовые задания для junior python
практические задачи по python
решение тестового задания python