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

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

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

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

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

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

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

Тестовое задание по python Условие Необходимо реализовать Python-библиотеку, которая осуществляет получение квадратной матрицы (NxN) с удалённого сервера и возвращает её пользователю в виде `List[int]`. Этот список должен содержать результат обхода полученной матрицы по спирали: против часовой стрелки, начиная с левого верхнего угла (см. test case ниже). Пример исходной матрицы: ``` +-----+-----+-----+-----+ | 10 | 20 | 30 | 40 | +-----+-----+-----+-----+ | 50 | 60 | 70 | 80 | +-----+-----+-----+-----+ | 90 | 100 | 110 | 120 | +-----+-----+-----+-----+ | 130 | 140 | 150 | 160 | +-----+-----+-----+-----+ ``` Матрица гарантированно содержит целые неотрицательные числа. Форматирование границ иными символами не предполагается. Требования к выполнению и оформлению - Библиотека содержит функцию со следующим интерфейсом: ```python async def get_matrix(url: str) -> List[int]: ... ``` - Функция единственным аргументом получает URL для загрузки матрицы с сервера по протоколу HTTP(S). - Функция возвращает список, содержащий результат обхода полученной матрицы по спирали: против часовой стрелки, начиная с левого верхнего угла. - Взаимодействие с сервером должно быть реализовано асинхронно - посредством aiohttp, httpx или другого компонента на asyncio. - Библиотека должна корректно обрабатывать ошибки сервера и сетевые ошибки (5xx, Connection Timeout, Connection Refused, ...). - В дальнейшем размерность матрицы может быть изменена с сохранением форматирования. Библиотека должна сохранить свою работоспособность на квадратных матрицах другой размерности. - Решение задачи необходимо разместить на одном из публичных git-хостингов (GitHub, GitLab, Bitbucket). Можно также выслать решение в виде архива (zip, tar). Загружать библиотеку в PyPi или другие репозитории не требуется. Проверка решения - Для самостоятельной проверки можно использовать следующий test case: ```python SOURCE_URL = './backend/Python/AvitoTech/matrix.txt' TRAVERSAL = [ 10, 50, 90, 130, 140, 150, 160, 120, 80, 40, 30, 20, 60, 100, 110, 70, ] def test_get_matrix(): assert asyncio.run(get_matrix(SOURCE_URL)) == TRAVERSAL ``` При проверке мы также будем обращать внимание на тесты, type hints, структуру решения и общее качество кода. Удачи в выполнении задачи и не забывайте о [The Zen of Python](https://www.python.org/dev/peps/pep-0020/#the-zen-of-python)! :)

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/).

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