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

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

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

OstrovokTech • Лёгкая сложность

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

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

Тестовые задания для Python Задача 1: Что может быть проще SQL? Вам дана таблица в postgres, которая представляет из себя список сотрудников с их зарплатами и отделами. Необходимо написать запрос, который будет выбирать человека с максимальной зарплатой из каждого отдела. В качестве тестовых данных можете использовать [дамп таблицы](employee.sql), пример схемы: ``` postgres=# \d employee Table "public.employee" Column | Type | Modifiers ------------+-----------------------+----------- id | integer | not null name | character varying(30) | department | character varying(30) | salary | integer | Indexes: "employee_pkey" PRIMARY KEY, btree (id) ``` Если нам нужна информация о всех сотрудниках, имеющих максимальную зарплату в отделе(в случае, когда она одинаковая): ``` SELECT m.name, m.department, t.mx FROM (SELECT department, max(salary) as mx from employee GROUP BY department) t JOIN employee m on m.department = t.department and t.mx = m.salary; ``` Если достаточно информации о любом из сотрудников с максимальной зарплатой: ``` SELECT DISTINCT ON (department) department, name, salary from employee ORDER BY department, salary DESC; ``` Запустить запросы, посмотреть результ: ``` make sql ``` Задача 2: Smashing Wallpaper Downloader Есть прекрасный сайт Smashing Magazine, который каждый месяц выкладывает отличные обои для десктопа. Заходить каждый месяц и проверять, что там нового дело не благородное, поэтому давайте попробуем автоматизировать эту задачу. Требуется написать cli утилиту, которая будет качать все обои в требуемом разрешение за указанный месяц-год в текущую директорию пользователя. Вот [тут](https://www.smashingmagazine.com/tag/wallpapers/) находятся все обои, а [здесь](https://www.smashingmagazine.com/2017/04/desktop-wallpaper-calendars-may-2017/) находятся обои за май 2017. Условия: * Python 3.5+ * Любые сторонние библиотеки * PEP8 * Если останется время, то можете покрыть её тестами с помощью py.test (: Подготовить среду, установить зависимости(откроет консоль внутри контейнера) ``` make getwallpapers_env ``` Запустить скрипт загрузки обоев в консоли из предыдущей команды: ``` ./getwallpapers.py 022018 640x480 ``` Запустить тесты ``` make getwallpapers_test ``` Особенности: * Если обои доступны в вариантах с календарём и без, утилита скачает оба. * Не все обои доступны во всех разрешениях, если конкретных обоев запрошенного разрешения нет, утилита их пропустит.

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

Лёгкий уровень сложности - 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"}] ```

SoftwareTester • Лёгкая сложность

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

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

[![Python 3.10.10](https://img.shields.io/badge/python-3.10.10-blue.svg)](https://www.python.org/downloads/release/python-31010/) На данный момент отбор на стажировку завершен. How to run app 1. up DB and broker ```shell docker compose up -d --build ``` 1. install requirements 2. export env variables ```shell export $(grep -v '^#' .env | xargs) ``` 4. Create DB tables and fill_handbooks ```shell python manage.py alchemy_create api python manage.py fill_handbooks ``` 5. up app ```shell python manage.py runserver ``` 6. up celery ```shell celery -A core.celery_config worker -l INFO ``` 7. Check everything is ok ```shell curl --location 'http://127.0.0.1:8000/api/auth/auth/' \ --header 'Content-Type: application/json' \ --data-raw '{ "engine": "email", "credentials": { "email": "super_admin@example.com", "password": "StrongPass777" } }' ``` Example response ```shell { "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiMjQxNzE1YzMtY2UxMi00MTYxLTgwZGEtYmFlYmUwYzU5MGE5IiwiZXhwIjoxNjg1ODIyMjg1fQ.o45cS8Upwz562l5XNmgzaOMz3mZUe0dr8Ea7LnM_lxM", "user": { "time_created": 1685562975, "time_updated": 1685562975, "user_id": "241715c3-ce12-4161-80da-baebe0c590a9", "user_type": "SUPER_ADMIN", "email": "super_admin@example.com", "is_email_confirmed": true, "last_name": "super", "first_name": "admin", "is_confirmed": true, "is_blocked": false } } ``` How to run tests 1. install requirements-dev.txt 2. run tests ```shell pytest tests ``` Что надо сделать 1. Скачать .zip файл себе данный репозиторий 2. Наполнить тестами на свой вкус (желательно не тратить на это больше 1-2 дней) 3. Прислать ссылку на свой репозиторий Приветствуется, но не обязательно: 1. использование параметризации тестов 2. использование моков 3. тесты значений в БД 4. тесты celery таски 5. организовать запуск тестов параллельно (по числу ядер на машине) 6. рефакторинг \ исправление ошибок в коде

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` Используемые библиотеки и инструменты — всё на твой выбор. Оценивать будем умение выполнять задачу имея неполные данные о ней, умение самостоятельно принимать решения и качество кода.

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