Python junior пример задания

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

ruslanushka/junior-python-developer-coding-task-master

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

ОСНОВНОЙ ФАЙЛ main.py После запуска основного файла, в каталоге создадутся два файла с расширением .tsv Вспомогательные файлы находятся в папке python_file

Задание для потенциальных кандидатов на позицию Junior-девелоперов. Представляет из себя проcтой ETL с разными форматами файлов.

Код решения задания должен соответствовать PEP8

Задание состоит из двух блоков:

  1. Basic — основная задача (обязателльна для выполнения)
  2. Advanced — дополнение к основной задаче (желательно сделать)

Использовать можно только средства стандартной библиотеки Python. Во всех случаях программа должна запускаться из терминала.

Для проверки работы программы предоставлются входные данные и результаты в виде 6 файлов:

  • входные данные:
    • csv_data_1.csv
    • csv_data_2.csv
    • json_data.json
    • xml_data.xml
    • basic_results.tsv
    • advanced_results.tsv

    Есть четыре файла: два .csv , один .json и один . xml файл.

    Первый .csv имеет следующую структуру:

    D1 D2 . Dn M1 M2 . Mn
    s s . s i i . i
    . . . . . . . .

    Второй .csv имеет следующую структуру:

    D1 D2 . Dn M1 M2 . Mn . Mz
    s s . s i i . i . i
    . . . . . . . . . .

    Внимание! Порядок колонок может несовпадать. В обоих файлах есть заголовки.

    .json файл имеет следуующую структуру:

    < "fields": [ < "D1": "s", "D2": "s", . "Dn": "s", "M1": i, . "Mp": i, >, . ] >

    .xml файл сожержит в себе следующую структуру:

    objects> object name="D1"> value>svalue> object> object name="D2"> value>svalue> object> . object name="Dn"> value>svalue> object> object name="M1"> value>ivalue> object> object name="M2"> value>ivalue> object> . object name="Mn"> value>ivalue> object> objects>

    Файлы нужно будет трансформировать в один .tsv файл со следующей структурой:

    D1 D2 . Dn M1 M2 . Mn
    s s . s i i . i
    . . . . . . . .

    Он должен быть отсортирован по колонке D1 и содержать даннные из всех четырёх файлов.

    Файлы нужно будет трансформировать в один .tsv файл со следующей структурой:

    D1 D2 . Dn MS1 MS2 . MSn
    s s . s i i . i
    . . . . . . . .

    В колонках MS1. MSn должны находиться суммы знаений соответствующих M1. Mn из 4 файлов сгруппированные по уникальнным значениям комбинаций строк из D1. Dn.

    Содржимое .tsv файла с данными из 4 файлов:

    D1 D2 M1 M2 M3
    a a 0 0 0
    a a 1 0 1
    a a 0 2 1
    a b 1 1 1
    c c 7 7 7

    Ожидаемый результат:

    D1 D2 M1 M2 M3
    a a 1 2 2
    a b 1 1 1
    c c 7 7 7

    Нужно попытаться учесть несколько фактов:

    • правльно решенная задача, это не главный критреий оценки. ОЧЕНЬ важно не забывать про другие характеристики кода, такие как поддерживаемость, читаемость, расширяемость.
    • в дальнейшем использовании программы возможно появление требования для работы с другими типами файлов, например .yaml .
    • входные файлы могут быть больших размеров
    • возможность обработки строк с некорректными значениями без прекращения выполнения программы с информированием пользователя об ошибках в конце её выполнения
    • подумать об организации тестирования программы

    Источник

    Python: вопросы на собеседовании. Часть I. Junior

    Начинаем серию статей со списками вопросов, которые задают на технических собеседованиях питонистам. Разумеется, в эти списки войдут не все возможные вопросы, а некоторые из них могут показаться странными или даже тупыми, но все же стоит быть готовым к тому, что вам их зададут.

    Вопросы

    1. Что такое Python?
    2. Что такое lambda в Python?
    3. Что означает pass в Python?
    4. Что обозначают *args и **kwargs при определении функции в Python?
    5. Что такое docstring в Python?
    6. Какие в Python существуют встроенные типы данных? Какие из них изменяемые, а какие неизменяемые?
    7. В чем разница между списками и кортежами?
    8. Какие ключевые слова могут быть использованы вместе с ключевым словом for ?
    9. Какие могут быть ключи в словарях Python?
    10. В чем разница между globals() , locals() , и vars() ?
    11. Что такое PEP8?
    12. Как работают срезы в Python?
    13. Что значит отрицательный индекс в Python?
    14. Что такое модуль __init__.py ? Для чего он нужен?
    15. Как можно поменять значения двух переменных в Python?
    16. Как можно посмотреть все методы объекта?
    17. Как можно получить документацию по методам объекта Python?
    18. Что такое модуль в Python? Что такое пакет в Python? В чем разница между пакетом и модулем?
    19. Можете ли вы написать многопоточное приложение в Python? В чем разница между мнгопоточностью (multithreading) и многопроцессностью (multiprocessing)?
    20. Что такое декораторы в Python? Как создать свой собственный декоратор?
    21. Что такое @classmethod , @staticmethod , @property ?
    22. В чем разница между @classmethod и @staticmethod ?
    23. Поддерживает ли Python в полной мере объектно-ориентированное программирование?
    24. Что такое атрибут __dict__ объекта Python?
    25. Что значит self ?
    26. Что делают функции __init__ ?
    27. Расскажите, как сделать исполняемый скрипт Python в операционной системе Unix.
    28. Что такое сериализация (pickling) и десериализация (unpickling) в Python?

    Вопросы с кодом

    1. Как преобразовать строку, содержащую бинарный код ( 0 или 1 ), в число (целого типа)? Напишите программу, которая будет это делать.
    2. Как проверить, что кортеж A содержит в себе все элементы кортежа B? Напишите программу, которая это будет выполнять.
    3. Какой будет результат выполнения следующего кода:
    def f(): x = 15 print(x) x = 12 f()
    1. Как преобразовать строку в число, состоящее из ASCII-кодов? Напишите программу для этой операции.
    2. Как удалить пустые строки (длиной 0) из списка строк? Напишите программу для этого.
    3. Создайте строку из чисел от 0 до 100 следующего вида: «0123456789101112. «
    4. Преобразуйте список, где есть повторяющиеся элементы, в список, где все элементы уникальны.
    5. Создайте список всех простых чисел, лежащих в диапазоне от 0 до 100 .

    Источник

    Saved searches

    Use saved searches to filter your results more quickly

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

    test assignment for employment

    Vlad2030/python-junior-task

    This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

    Name already in use

    A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

    Sign In Required

    Please sign in to use Codespaces.

    Launching GitHub Desktop

    If nothing happens, download GitHub Desktop and try again.

    Launching GitHub Desktop

    If nothing happens, download GitHub Desktop and try again.

    Launching Xcode

    If nothing happens, download Xcode and try again.

    Launching Visual Studio Code

    Your codespace will open once ready.

    There was a problem preparing your codespace, please try again.

    Latest commit

    Git stats

    Files

    Failed to load latest commit information.

    README.md

    Необходимо разработать REST API для ведения учета питомцев (собак и кошек).

    Требуется использовать: Python3.Х, FastAPI, SQLite (можно использовать свою fakedb на базе словаря или класса) и Docker.

    P.S. Решил вместо SQlite использовать PostgreSQL + SQLALchemy, вместо обычного Docker – Docker-compose. Также в планах сделать автотесты (pytest) и миграции (alembic)

    Результат задания нужно залить на публичный git.

    Необходимо реализовать следующие endpoint’ы:

    < // нужно спроектировать (спроектировано) "name": "boy", "age": 7, "type": "dog" >
    < "id": 1, "name": "boy", "age": 7, "type": "dog", "created_at": "2021-05-18T19:10:17" >

    limit: integer (optional, default=20)

    < "count": 2, "items": [ < "id": 1, "name": "boy", "age": 7, "type": "dog", "created_at": "2021-05-18T19:10:17" >, < "id": 2, "name": "girl", "age": 3, "type": "cat", "created_at": "2021-04-11T22:39:58" > ] >
    < "deleted": 2, "errors": [ < "id": 1, "error": "Pet with the matching ID was not found." > ] >

    Необходимо контейнеризировать полученное приложение.

    Написать Dockerfile , который:

    • скачивает базовый образ с DockerHub
    • копирует приложение внутрь образа
    • устанавливает необходимые пакеты и зависимости (БД, requirements.txt, и т.д.)
    • производит настройку всех необходимых компонентов для работы приложения
    • запускает приложение на 3000 порту

    На ПК с установленным Docker должна быть возможность склонировать репозиторий с исходными кодами приложения.

    После выполнения команд docker build и docker run приложение должно отвечать на вызовы api по адресу 127.0.0.1:3000

    About

    test assignment for employment

    Источник

    Читайте также:  How to get HTML tag value in PHP
Оцените статью