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

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

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

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

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

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

Необходимо разработать бекенд (серверную часть) веб-приложения, демонстрирующего расписание рейсовых автобусов. Автобусы двигаются по маршрутам от конечной до конечной в прямом и обратном направлении. В разных направлениях может быть разный набор остановочных пунктов. Фронтенд приложения получает данные с сервера через REST API, необходимо реализовать следующие методы этого API: 1. /api/find-bus Описание: Возвращает автобусы, маршрут которых включает отрезок от одной остановки к другой, с тремя ближайшими к текущему времени вариантами времени прибытия на исходную остановку. Параметры запроса: * from: id исходной остановки. * to: id конечной остановки. Пример ответа: ``` { "from": "ул. Пушкина", "to": "ул. Ленина", "buses": [ { "route": "Автобус No11 в сторону ост. Попова", // указывается конечная остановка маршрута "next_arrivals": ["08:15", "08:40", "09:15"] }, { "route": "Автобус No21 в сторону ост.Ленина", "next_arrivals": ["08:30", "09:04", "09:30"] } ] } ``` 2. Методы (или метод) предоставляющие механизм редактирования маршрутов, т.е. набора остановок на пути следования автобуса (без указания времени). Входный параметры и формат ответа продумать самостоятельно. Требования к реализации: 1. Язык программирования: PHP (версия 7+). 2. Использование фреймворка: допускается использование фреймворка на выбор: Laravel, Symfony, Yii2 или чистый PHP. 3. База данных: PostgreSQL. 4. Использование подхода ООП Оцениваться будут архитектура решения, качество кода, соответствие REST принципам и тестируемость. Будет плюсом если проект будет запускаться в docker. Результат представить в виде ссылки на публичный репозиторий на bitbucket.org. Он должен включать в себя php файлы проекта, sql дамп базы, схему структуры базы данных в виде изображения и инструкцию по запуску проекта.

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

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

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

Обратите внимание Перед решением тестового задания заполните, пожалуйста, небольшую форму отклика для интересующей вас вакансии по адресу: https://job.ivelum.com После заполнения анкеты мы свяжемся с вами, ответим на ваши вопросы по вакансии и расскажем подробнее о наших проектах. По результатам этого общения мы можем предложить вам попробовать сделать тестовое задание, которое описано ниже. Присылайте ваше решение на адрес [job@ivelum.com](mailto:job@ivelum.com). Hacker™ News proxy Реализовать простой http-прокси-сервер, запускаемый локально, который показывает содержимое страниц [Hacker News](https://news.ycombinator.com). Прокси должен модицифировать текст на страницах следующим образом: после каждого слова из шести букв должен стоять значок «™». Пример™: Исходный текст: https://news.ycombinator.com/item?id=13713480 ``` The visual description of the colliding files, at http://shattered.io/static/pdf_format.png, is not very helpful in understanding how they produced the PDFs, so I took apart the PDFs and worked it out. Basically, each PDF contains a single large (421,385-byte) JPG image, followed by a few PDF commands to display the JPG. The collision lives entirely in the JPG data - the PDF format is merely incidental here. Extracting out the two images shows two JPG files with different contents (but different SHA-1 hashes since the necessary prefix is missing). Each PDF consists of a common prefix (which contains the PDF header, JPG stream descriptor and some JPG headers), and a common suffix (containing image data and PDF display commands). ``` Через ваш прокси™: http://127.0.0.1:8232/item?id=13713480 ``` The visual™ description of the colliding files, at http://shattered.io/static/pdf_format.png, is not very helpful in understanding how they produced the PDFs, so I took apart the PDFs and worked™ it out. Basically, each PDF contains a single™ large (421,385-byte) JPG image, followed by a few PDF commands to display the JPG. The collision lives entirely in the JPG data - the PDF format™ is merely™ incidental here. Extracting out the two images™ shows two JPG files with different contents (but different SHA-1 hashes™ since the necessary prefix™ is missing). Each PDF consists of a common™ prefix™ (which contains the PDF header™, JPG stream™ descriptor and some JPG headers), and a common™ suffix™ (containing image data and PDF display commands). ``` Условия: * последняя версия™ Python™ * страницы должны™ отображаться и работать полностью корректно, в точности так, как и оригинальные (за исключением модифицированного текста™); * при навигации по ссылкам, которые ведут на другие™ страницы HN, браузер должен™ оставаться на адресе™ вашего™ прокси™; * можно использовать любые общедоступные библиотеки, которые сочтёте нужным™; * чем меньше™ кода, тем лучше. PEP8 — обязательно; * если в условиях вам не хватает каких-то данных™, опирайтесь на здравый смысл. Если задачу™ удалось сделать быстро™, и у вас еще остался энтузиазм - как насчет™ написания тестов™? Присылайте ваше решение в виде ссылки™ на gist или на публичный репозиторий на GitHub™. Обратите внимание Напомним порядок действий: 1. Пожалуйста, заполните форму отклика на сайте https://job.ivelum.com; 2. Мы свяжемся с вами, ответим на ваши вопросы по вакансии и расскажем про наши проекты. По результатам этого общения мы можем предложить вам попробовать сделать тестовое задание, которое описано выше; 3. Присылайте ваше решение на [job@ivelum.com](mailto:job@ivelum.com).

Python • Высокая сложность

Высокий уровень сложности - 3 звезды

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

Тестовое задание в Контент В Контенте мы занимаемся агрегацией отелей поставщиков (supplier), объединяя одинаковые отели от разных поставщиков в единую сущность (мета-отель). В этом задании мы предлагаем реализовать базовый сервис (API) для работы с отелями. Для дополнительного контекста и перспективы, представьте что это ключевой сервис в вашем тревел стартапе. Функциональность Список API, которые должны быть покрыты в этом задании: - Создать отель поставщика - Объединить 1 и более отелей поставщиков в один мета-отель - Получить список мета-отелей и входящих в них отелей - Перепривязать отель к другому мета-отелю - Получить историю привязки отеля (к каким мета-отелям в какой момент времени он был привязан) Требования и ограничения - Авторизация/аутентификация не нужна - Отель может быть привязан только к одному мета-отелю в один момент времени - В мета-отеле должен быть минимум один отель - Отель можно отвязать от мета-отеля и привязать к другому Пример данных Мета-отель: ``` id: mercure_pattaya id: windways ``` Отель: ``` id: 1 name: Mercure Pattaya supplier_id: AAA id: 2 name: Mercure Pattaya supplier_id: BBB id: 3 name: Windways Hotel supplier_id: AAA ``` Оценка Цель этого тестового задания - увидеть ваш лучший/самый идиоматичный код на Python/Django. Мы ожидаем увидеть: - Документацию API - README с описанием как запустить проект, запустить тесты и т.д - Чистую архитектуру, с корректной связанностью кода (decoupling), complexity isolation - Аккуратный, понятный, поддерживаемый код, с наличием комментариев к коду (если нужны) - Код на публичной платформе (github/gitlab/bitbucket) - Отсутствие "мертвого" кода (т.е пустые модули, неиспользуемые функции и параметры и т.д) - Тесты (доказательство работоспособности кода) - Реализация на Django + любой REST или RPC фреймворк, с которым вам комфортно - PostgreSQL в качестве БД (помните про блокировки, транзакции, race conditions) - Сервис корректно работает, если запущен в нескольких экземплярах (инстансах) - Проект должен запускаться через docker-compose Вопросы и сроки Cтрогих сроков нет, но мы хотели бы получить от вас примерную оценку времени. Не стесняйтесь задавать вопросы по заданию, если таковые возникнут.

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

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

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

Какие знания нужны junior backend developer в 2023 У нас в [Appstorespy.com](https://appstorespy.com/) постоянно открыты вакансии для backend и frontend разработчиков, в том числе и на позиции уровня junior.~~ Успешное выполнение задания подтверждает наличие у вас минимальных базовых знаний, необходимых для самостоятельной работы над backend проектом начального уровня в 2023 году. Данное задание не оплачивается, не является офертой, не гарантирует трудоустройства, не требует использования всех перечисленных технологий и не предусматривает единственно верного решения. Затруднения при реализации задания свидетельствуют о наличии пробелов в знаниях и требуют дополнительной проработки. Нет ни одного образовательного курса, который бы охватывал весь необходимый стек, но отдельно по каждой теме имеется избыточная информация, включая видео и туториалы. **Начальный стек технологий backend: Python 3, Django 3, MySQL/PostgreSQL, MongoDB, Redis, Memcached, RabbitMQ, Celery, Elasticsearch, REST, GraphQL.** Обязательно нужно иметь хорошие знания основ программирования и самого языка, ООП, Style Guide, PEP8, уметь гуглить и находить нужную информацию, знать последние версии основных инструментов, базовые навыки работы с Git, virtualenv, pip, уметь развернуть и запустить рабочий проект на сервере под gunicorn. Задача Необходимо написать бекенд для работы с приложением React, которое позволяет пользователю зарегистрироваться и загрузить файл на сервер для обработки. После асинхронной обработки пользователь сможет посмотреть информацию о своем файле. Непринципиально какая именно обработка файла: сервер может посчитать количество строк в файле, обрезать видео файл и т.д. Приложение React общается с бекендом по GraphQL. Соответственно нужны методы для регистрации, логина, логаута пользователей, аплоада файла и просмотра информации о нем. Написание собственного кода при наличии готовых проверенных open source библиотек может быть рассмотрено как неумение пользоваться поиском, оценивать собственные трудозатраты и выставлять приоритеты задач. Нам ваши велосипеды не нужны. Проверка результата выполнения задания: тесты, Postman. Рекомендуемый выбор технологий в порядке увеличения сложности Фреймворк: Django, Flask Файловое хранилище: локально, S3 Реляционная БД: MySQL, PostgreSQL NoSQL БД: MongoDB, Redis, Elasticsearch Кеширование: Memcached, Redis Регистрация пользователей: Email, Google Авторизация пользователей: Токены(JWT), Auth0, Keycloak Distributed tasks: RabbitMQ/Redis+Celery, Kafka Поиск: Elasticsearch

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