Python вопросы с собеседований
18.5K subscribers
279 photos
3 videos
8 files
237 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит
Download Telegram
🖥 В чем разница между итератором и генератором?

В
Python и итераторы, и генераторы позволяют перебирать элементы коллекций, но работают немного по-разному.

🔘Итераторы — это объекты, которые реализуют методы __iter__() и __next__(). Метод __iter__() возвращает сам итератор, а __next__() — следующий элемент коллекции. Если элементы заканчиваются, __next__() должен вызвать исключение StopIteration. Итераторы позволяют явно перебирать элементы коллекции, не требуя, чтобы все элементы были доступны в памяти одновременно.

🔘Генераторы — это специальный способ реализации итераторов. Они создаются при помощи функций с ключевым словом yield. Главное отличие генератора заключается в том, что значения генерируются по требованию. Каждый раз, когда генератор достигает yield, он возвращает значение и «замирает», сохраняя своё состояние до следующего вызова. Это позволяет использовать меньше памяти при итерации по длинным последовательностям.

#вопросы_с_собеседований
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 С помощью каких инструментов можно выполнить статический анализ кода?

Для статического анализа кода есть несколько инструментов:

Pylint - это инструмент, который анализирует исходный код на соответствие PEP8, а также предупреждает о потенциальных ошибках в коде.

Flake8 - это комбинированный инструмент, который объединяет в себе Pylint, PyFlakes и множество других правил, обеспечивающих соответствие стиля написания кода и обнаруживающих ошибки в исходном коде.

Mypy - это статический типизатор для Python, который позволяет находить ошибки в типах переменных в исходном коде.

Bandit - это инструмент для поиска уязвимостей в исходном коде Python.

Black - это инструмент для автоматического форматирования кода Python, который придерживается только одного стиля написания кода.

Pycodestyle — это простая консольная утилита для анализа кода Python, а именно для проверки кода на соответствие PEP8. Один из старейших анализаторов кода, до 2016 года носил название pep8, но был переименован по просьбе создателя языка Python Гвидо ван Россума.

Vulture — это небольшая утилита для поиска “мертвого” кода в программах Python. Она использует модуль ast стандартной библиотеки и создает абстрактные синтаксические деревья для всех файлов исходного кода в проекте. Далее осуществляется поиск всех объектов, которые были определены, но не используются. Vulture полезно применять для очистки и нахождения ошибок в больших базовых кодах.

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

Пишите в комментариях, какие инструменты анализа кода используете вы 👇

@python_job_interview
🖥 Как упаковать бинарные зависимости?

Для упаковки бинарных зависимостей в проект следует использовать менеджеры пакетов. Для Python наиболее распространены pip и conda. Для Java - Maven или Gradle.

Пример для Python с использованием pip:

Установите необходимые библиотеки и зависимости в проекте:
pip install requests numpy pandas
Создайте файл requirements.txt с полным списком зависимостей:

requests
numpy
pandas


Упакуйте зависимости в архив:
pip freeze > requirements.txt
Можно передать файл requirements.txt другим пользователям вашего проекта, которые могут установить все зависимости одной командой:

pip install -r requirements.txt

Для упаковки бинарных зависимостей можно использовать инструмент wheel. Wheel-файлы - это zip-архивы, содержащие установочные файлы для Python-пакетов, и могут содержать бинарные расширения (например, скомпилированные модули C), которые необходимо собрать и установить на целевой машине.

Для создания wheel-файла для Python-пакета можно использовать команду pip wheel. Например, если есть файл с требованиями requirements.txt, содержащий список зависимостей вашего проекта, можете создать wheel-файлы для всех зависимостей с помощью следующей команды:

pip wheel -r requirements.txt

Вы также можете установить wheel-файлы с помощью pip install, указав имя файла:

pip install mypackage-1.0.0-py3-none-any.whl
Таким образом, вы можете создавать и распространять бинарные зависимости в виде wheel-файлов и использовать их при установке пакетов на других устройствах.

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Поиск значений в словаре неизвестной глубины

Периодически на собеседованиях попадаются задачи с похожей формулировкой.

🟡Перебрать весь словарь неизвестной глубины и содержимого, включающие в себя вложенные словари, можно с помощью рекурсии. Для этого подойдет функция такого вида (кстати, здесь используются аннотации типов):
def find_all_keys(input_dict: dict) -> list:
result = []
for key, val in input_dict.items():
if key.startswith('description'):
result.append(val)
if isinstance(val, dict):
result.extend(find_all_keys(val))
return result

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

🟡Для запуска поиска нужно создать переменную под массив с результатам и вызвать созданную функцию, передав ей исходный словарь:
data = yaml.safe_load(Path(sys.argv[1]).read_text())
descriptions = find_all_keys(data)


Ну вот, теперь на одну проблемную задачу меньше)

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Вопросы для собеседования Python Junior

Держите большой список из 98 вопросов по Python и немного по смежным штукам типо Git, SQL.

Вопросы есть простые и не очень, вот некоторые из них:
• Чем файл .pyc отличается от .py
• Что такое GIL
• Будет ли возвращать что-то функция без return?
• Что такое миксины
• Сколько может быть родителей и наследников у класса
• Что такое json, xml
• Какой паттерн программирования реализует Django
• Что такое JOIN и какой он может быть
• Метаклассы в Python

📎 Вопросы и ответы

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Python: вопросы и ответы с собеседований

Держите 36 вопросов с ответами по Python + вопросы по Computer Science, Django, по базам данных и не только.
Успешных собеседований)

▶️ Вопросы/ответы

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Data Science разбор реальной задачи с собеседования. Прогнозирование оттока клиентов.

Смотреть
Данные
Ноутбук

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Большой список вопросов и ответов по Python для подготовки к собеседованию

Эти вопросы покрывают практически все темы Python + затрагивают азы Computer Science: алгоритмы, структуры данных и т.д.

▶️ Вопросы и ответы

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 10 вопросов по Python от Epam

Вопросы в духе "что такое замыкание", "расскажи про CPython", локальные/глобальные переменные, блокировщик GIL, CPU-bound- и IO-bound-задачи

▶️ Вопросы и ответы

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Тинькофф разбор заданий на стажировку!

Видео
Задачи

@python_job_interview
🖥 Think Python — открытый учебник Python

Здесь очень подробно и понятно объясняются ключевые темы Python, можно использовать, чтобы освежить азы перед собеседованием
К каждой главе прилагается Google Colab, что очень удобно

📎 Книга Think Python

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM