TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #242 2.84K
📌 Тестовое задание по python

Мы уже создавали матрицу спирали, теперь создадим полноценный проект.
Необходимо реализовать Python-библиотеку, которая осуществляет получение квадратной матрицы (NxN) с удалённого сервера и возвращает её пользователю в виде List[int]. Этот список должен содержать результат обхода полученной матрицы по спирали: против часовой стрелки, начиная с левого верхнего угла (см. test case ниже).

Пример исходной матрицы:

+-----+-----+-----+-----+
| 10 | 20 | 30 | 40 |
+-----+-----+-----+-----+
| 50 | 60 | 70 | 80 |
+-----+-----+-----+-----+
| 90 | 100 | 110 | 120 |
+-----+-----+-----+-----+
| 130 | 140 | 150 | 160 |
+-----+-----+-----+-----+



Матрица гарантированно содержит целые неотрицательные числа. Форматирование границ иными символами не предполагается.

Требования к выполнению и оформлению
Библиотека содержит функцию со следующим интерфейсом:

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:

SOURCE_URL = 'https://raw.githubusercontent.com/avito-tech/python-trainee-assignment/main/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


Загружайте свои решения и отправляйте ссылки в комментарии👇

@python_job_interview
  • 👍 10
  • 🔥 3
  • ❤ 1
More from @python_job_interview
  1. Oct 2, 2026photo post
  2. Oct 2, 2026🌟 SGLang научил чат-модели отвечать вероятностями Команда открытого движка инференса SGLa…
  3. Oct 1, 2026🖥 Примеры кода на Python 2026: лучшие практики, разбор и задачи с решениями Python пример…
  4. Sep 30, 2026🔥 Почему Python-библиотеки всё чаще пишут критичные части на Rust Например, Pydantic v2 и…
  5. Sep 29, 2026🌟 OpenScience: персональный учёный с режимом автономных экспериментов Стартап Synthetic S…
  6. Sep 28, 2026Миниатюра из фотографии за 4 строки Python 🐍 from PIL import Image with Image.open("my_im…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →