Python задачи и вопросы
1.28K subscribers
408 photos
1 file
158 links
Задачи и вопросы с собеседований по python разного уровня сложности

По рекламе: @cyberJohnny
Download Telegram
В чем разница между модулем и пакетом в Python?

Каждый файл программы на Python является модулем, который может импортировать другие модули в виде объектов. Таким образом, модуль служит способом организации вашей программы. Папка, содержащая программу на Python, называется пакетом модулей.
Библиотека задач по Python
Что выведет код сверху?

👾 — Tython
👍 — Tython Learning
🥰 — Python
⚡️ — Error

Библиотека задач по Python
Что будет, если декоратор не возвращает ничего?

Если декоратор не возвращает ничего, то происходит следующее:
— Декоратор заменяет оригинальную декорируемую функцию на значение None.
— При попытке вызвать декорированную функцию произойдет ошибка AttributeError, поскольку None не является вызываемым объектом.
— Выполнение декорируемого кода на самом деле не происходит.
— Декоратор фактически "срывает" работу декорируемой функции, делая ее невызываемой.

Чтобы этого избежать, декоратор обязательно должен возвращать некоторое вызываемое значение — либо оригинальную функцию, либо другую функцию-обёртку.
Таким образом, не возвращая ничего декоратор нарушает ожидаемое поведение и "ломает" декорируемый код.

Библиотека задач по Python
Что выведет код сверху?

👾 — ["Monday", "Tuesday"]
👍 — ["Sunday", "Monday"]
🥰 — ["Tuesday", "Wednesday"]
⚡️ — ["Wednesday", "Monday"]

Библиотека задач по Python
Что выведет код сверху?

👾 — 6 4
👍 — 6 2
🥰 — 4 2
⚡️ — 6 1

Библиотека задач по Python
Что выведет код сверху?

👾 — 4
👍 — 2
🥰 — 2
⚡️ — Error

Библиотека задач по Python
Что будет если ошибку не обработает блок except?

Если ошибка не будет обработана в блоке except, то программа прервется и выдаст сообщение об ошибке. Это называется необработанным исключением.

При возникновении исключения Python генерирует traceback — последовательность вызовов функций, которая привела к ошибке.
Если исключение не перехватывается блоком except, то traceback выводится пользователю и программа завершается аварийно.

Библиотека задач по Python
Есть ли в Python сборщик мусора, и, если есть, как он работает?

Стандартный интерпретатор использует несколько алгоритмов.

🧹 Подсчёт ссылок. Каждый объект в Python содержит внутренний счётчик ссылок. Когда он падает до нуля, это означает, что на объект больше нет ссылок, его можно удалить. Главный недостаток этого алгоритма — не умеет определять циклические ссылки.
🧹 Алгоритм поиска циклов. Реализован в модуле gc и активируется время от времени, а не постоянно. Если коротко, этот алгоритм периодически ищет объекты, которые ссылаются только друг на друга и не доступны извне. Объекты, признанные недостижимыми, удаляются.
Также стоит добавить, что циклический сборщик мусора делит объекты на три поколения в зависимости от того, как долго они существуют в памяти. Новые объекты помещаются в первое поколение. Если они сохраняются после очередного процесса сбора мусора, то перемещаются в следующее по старшинству поколение. Объекты в более старших поколениях проверяются реже.

Библиотека задач по Python
✍🏻 Что такое фабрика декораторов?

Фабрика декораторов — это особая разновидность функции высшего порядка, которая возвращает декоратор вместо прямого результата. Главное отличие фабрики декораторов от обычного декоратора в том, что она принимает аргументы, которые могут конфигурировать логику декоратора.

Например, фабрика может принимать имя лог-файла, в который будет производиться запись при вызове декорируемой функции. Или уровень логирования вместо простой записи всех вызовов.
Такой подход позволяет создавать переиспользуемые и гибко настраиваемые декораторы для решения разных задач.

Главные преимущества фабрик декораторов — это возможность абстрагироваться от конкретики реализации, избежать дублирования кода и создавать интуитивный API для декораторов с настройками.

Библиотека задач по Python
👍1
Какое(-ие) из следующих утверждений верно(-ы) в контексте Django 4.2+, если используется PostgreSQL, кастомный middleware и ATOMIC_REQUESTS=True для базы данных?

👾 — Если в кастомном middleware происходит исключение после get_response() (в process_response()), то транзакция, инициированная ATOMIC_REQUESTS, уже завершена
👍 — Использование @transaction.atomic внутри представления (view) поверх ATOMIC_REQUESTS=True приводит к конфликту и вызывает исключение
🥰 — Механизм prefetch_related() эффективнее select_related() в случае ForeignKey-связей один-к-одному
⚡️ — Если DEBUG=True, то middleware X-Content-Type-Options: nosniff не будет добавлен, даже если SecurityMiddleware активен
(https://t.iss.one/csharp_problems_lib)Библиотека задач по Python
В каких ситуациях возникает исключение NotImplementedError?

Исключение NotImplementedError возникает, когда метод или функция должны быть реализованы в подклассе, но не были реализованы. Это может произойти, когда родительский класс определяет метод, но не реализует его сам, а оставляет это для подклассов. В этом случае, если подкласс не реализует метод, он будет вызывать исключение NotImplementedError. Это может быть полезно для отладки, чтобы убедиться, что все необходимые методы реализованы в подклассах. Это также может возникнуть в других ситуациях, например, если вы пытаетесь использовать неопределенную функцию или метод.

Библиотека задач по Python
Каким будет результат следующего выражения: -31 % 10?

Результатом выражения -31 % 10 будет 9. Это происходит потому, что для отрицательных чисел оператор % возвращает остаток от деления первого числа на второе немного другим образом. -31 % 10 = -3 — 1/10 и в ответ мы получим 10 — 1 = 9.

Библиотека задач по Python
🤔 Зачем вообще понимать, как работает ML?

Сейчас многие просто запускают модельку в sklearn — и радуются точности 0.92.

Вроде всё работает… но почему?
А когда сломается — что делать?

Машинное обучение — это система, которую можно понять.

Если знаешь, что делает градиентный спуск, зачем нужен бустинг и как дерево принимает решения — ты не просто «запускаешь», ты управляешь моделью.

👉 Мы сделали курс, чтобы в это было реально въехать:

— без сложных формул;
— с интуитивными объяснениями;
— от простого к сложному.

Если хочешь перейти от «гуглю код» к «понимаю, как это работает» — ты по адресу!

Стартуем в сентябре — бронируй место на курсе уже сейчас (https://clc.to/3zXSqA)
Что делает os.rename()?

В Python функция os.rename() используется для переименования файла или директории в операционной системе. Она входит в модуль os.
(https://t.iss.one/csharp_problems_lib)Библиотека задач по Python
Какое утверждение о системе зависимостей FastAPI корректно при использовании Depends, BackgroundTasks и ContextVar в асинхронном контексте?

👾 — Все зависимости в FastAPI создаются один раз при запуске приложения и переиспользуются между запросами, если они объявлены через Depends
👍 — Использование ContextVar внутри зависимости гарантирует корректное изолированное состояние на каждый HTTP-запрос, даже при высокой степени параллелизма
🥰 — BackgroundTasks могут быть объявлены внутри зависимости, но они не будут выполнены, если не проброшены явно в APIRouter
⚡️ — Асинхронные зависимости с yield (context managers) поддерживаются FastAPI только при использовании Python 3.12 и выше
(https://t.iss.one/csharp_problems_lib)Библиотека задач по Python
🫣 Боитесь математики в ML?

Думаете, для этого нужно вспоминать университетские интегралы и решать сложные уравнения?

У нас хорошая новость: машинное обучение — это в первую очередь инженерная практика, а не математическая олимпиада. Здесь важнее понимать суть, а не выводить формулы.

Именно на таком подходе — через логику, интуицию и наглядные примеры — и построен наш курс «ML для старта в Data Science», где мы объясняем всё на пальцах, без боли и зубрёжки.

Регистрируйтесь, пока есть свободные места 😉 (https://clc.to/MLcourse)