Библиотека собеса по Python | вопросы с собеседований
6.01K subscribers
706 photos
15 videos
762 links
Вопросы с собеседований по Python и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/6587aafa

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Зачем нужна pass?

Конструкция pass в Python представляет собой пустой оператор. Она применяется в тех случаях, когда синтаксис требует наличия оператора, но выполнять никаких действий не требуется. Это может быть особенно полезно при создании заглушек для функций, которые будут реализованы позже, или в циклах, где на текущей итерации не нужно выполнять никаких операций.

Библиотека собеса по Python
Кажется, мы окончательно перешли от игрушек к суровому AgentOps

Приглашаем на наш обновлённый курс по разработке ИИ-агентов. Никакой воды про «будущее нейросетей», только инженерный подход.

На курсе мы:

— пошагово строим готовые системы на LangGraph, CrewAI и MCP;
— настраиваем кэширование и роутинг, чтобы бот не сожрал токены;
— разбираемся со стейтом, учимся дебажить через time-travel и прикручиваем human-in-the-loop;
— выводим RAG в прод так, чтобы безопасники не завернули архитектуру из-за 152-ФЗ.

В пекло скучные лекции про общую инфраструктуру — сразу фокусируемся на агентных фреймворках и написании кода. Занятия ведут бывалые лиды из Газпромбанка и Альфы, набившие шишки на реальных задачах.

Кстати, на днях мы пилили агента в прямом эфире, если пропустили — есть запись вебинара.


Сегодня последний день, когда можно забрать курс по старым ценам. Базовый тариф сейчас стоит 49 000 ₽ (вместо 62 990 ₽), продвинутый трек — 99 000 ₽ (вместо 124 990 ₽). Если не хочется отдавать всю сумму сразу, есть рассрочка. Торопитесь — на потоке осталось всего 5 мест!

Зафиксировать цену и перейти к сборке своих агентов
Как работать с датой/временем без багов с часовыми поясами и DST?

Храните всё в UTC и используйте aware-объекты с zoneinfo (Py3.9+). На границах — конвертируйте в нужный TZ, арифметику делайте в UTC. Не смешивайте naive/aware, не используйте фиксированные смещения для локали, учитывайте «дыры/повторы» при DST и сравнивайте по UTC.

Библиотека собеса по Python
Как обеспечить воспроизводимые и безопасные сборки зависимостей?

Пингуйте всё до патча и транзитивы (pip-compile --generate-hashes/poetry.lock), устанавливайте с проверкой хэшей (pip install --require-hashes), собирайте колёса в изоляте (PEP 517) и кэшируйте их, используйте constraints для кросс-платформы, частный индекс/зеркало, в CI ставьте --no-deps по lock-файлу и прогоняйте pip-audit.

Библиотека собеса по Python
Как реализовать надёжные ретраи без «DDOS-эффекта» и с идемпотентностью?

Разделяйте retryable/неповторяемые ошибки, ставьте таймауты, экспоненциальный бэкофф с джиттером и предел попыток, ограничивайте конкуренцию (семафор/пул), используйте идемпотентные ключи/dedup на стороне получателя, включайте circuit breaker и метрики попыток/успехов.

Библиотека собеса по Python
Как спроектировать контекстные менеджеры так, чтобы ресурсы гарантированно освобождались даже при отмене/исключениях (sync/async)?

Реализуйте __enter__/__exit__ или __aenter__/__aexit__, делайте освобождение идемпотентным и безопасным к повторному вызову, в __exit__ не глотайте исключения без нужды (возвращайте False). Для композиции используйте contextlib.ExitStack/AsyncExitStack, для потоков/соединений — async with/aclose. В корутинах без менеджера — try/finally. Критические закрытия при отмене можно кратко «экранировать» (shield) ради целостности.

Библиотека собеса по Python
2
Начать рассказывать интервьюеру, как вы ловко дёргаете ручки API через базовый LangChain.

Звучит как отличный план, да? Нет, это мгновенный отказ.

В свежем отчёте по рынку GPU говорится, что 54% компаний стопают ИИ-внедрения тупо из-за конских затрат на инфраструктуру. На серверах более 70% стоимости — это видеокарты. Поэтому на собесах сейчас спрашивают не про красивые промпты, а про жёсткую экономику агентов.

По сути, от вас ждут понимания, как лимитировать ресурсы на лету, роутить запросы и дебажить отказы через механизм time-travel в LangGraph. Если вы до сих пор собираете ботов в ноутбуках, гляньте обновлённый курс «Разработка ИИ-агентов» — фокус там смещён с игрушечных концепций на суровый энтерпрайз.

Что требуют от мидлов и выше:

— интеграция мультиагентных систем по стандарту MCP;
— суровый AgentOps: метрики, трейсинг, защита от деградации пайплайнов;
— локальный деплой Open Source под 152-ФЗ (без этого в финтех можно даже не стучаться).

Прямо сейчас можно урвать курс с увесистой скидкой (49 000 ₽ 62 990 ₽ за базовый тариф и 99 000 ₽ 124 990 ₽ за продвинутый трек), но стоит поторопиться — на потоке осталось всего 5 мест.

👉 Подтянуть архитектуру до уровня прода
Как работать с большими строками/байтами без лишних копий и перерасхода памяти?

Не конкатенируйте по одному кусочку; для строк используйте ''.join(...)/io.StringIO, для байтов — bytearray/io.BytesIO/memoryview (срезы без копий). Стримьте по чанкам, для файлов подойдёт mmap. Помните: срез bytes копирует, memoryview — нет.

Библиотека собеса по Python
👍31
В асинхронном Python-сервисе (asyncio) при росте нагрузки резко увеличиваются задержки отклика, хотя CPU и память не перегружены. В чём может быть причина и как её диагностировать?

Чаще всего дело в блокирующем коде внутри event loop (синхронные вызовы, тяжёлые вычисления или блокирующие I/O). Диагностировать можно профилировщиками (async-profiler, aiomonitor, trio-asyncio) и логированием длительных задач. Решение — вынести CPU-bound операции в ProcessPoolExecutor, заменить блокирующие вызовы на асинхронные аналоги или рефакторить архитектуру.

Библиотека собеса по Python
👍2
😱 Если ваш продукт не умеет отдавать данные в формате, понятном AI-агенту, то вас просто не существует

Скрипт не будет кликать по красивым кнопкам в браузере, он уйдёт к конкуренту с нормальным API. Перестроить архитектуру под машинных клиентов — это уже не хайп, а необходимое условие сохранения конкурентоспособности.

Как адаптировать продукт и не исчезнуть из выдачи:

— интегрировать MCP и A2A-взаимодействие, чтобы агенты могли вас читать;
— научиться контролировать стоимость (лимиты, кэш, роутинг между моделями);
— настроить AgentOps: трейсинг, логирование и отлов регрессий.

Всё это ждёт вас на обновлённом курсе «Разработка AI-агентов». Мы специально сделали фокус на утилитарном инжиниринге и production-ready решениях.

Кстати, до 29 марта можно забрать курс с большой скидкой, и стоит поторопиться — мест на потоке всё меньше.

Зафиксировать цену и начать деплоить агентов без слива бюджета 👈
В Kubernetes-продакшене пользователи жалуются, что при резком росте нагрузки часть запросов теряется или обрабатывается с большим лагом. Как вы будете искать и решать проблему?

Проверю метрики Pod’ов и нод (CPU/memory), события в кластере и логи ingress-контроллера. Удостоверюсь, что настроены requests/limits, HPA для автоматического масштабирования и readinessProbe, чтобы трафик шёл только на готовые Pod’ы. Для решения — оптимизировать ресурсы, включить горизонтальное или кластерное авто-масштабирование, при необходимости добавить очередь (Kafka/RabbitMQ) для сглаживания пиков.

Библиотека собеса по Python
Как FastAPI обрабатывает зависимости с Depends, и как происходит их разрешение в контексте асинхронных и синхронных функций?

FastAPI строит граф зависимостей рекурсивно при старте приложения. При обработке запроса оно вызывает зависимости в порядке topological sort. Асинхронные зависимости вызываются с await, синхронные — через обычный вызов. FastAPI автоматически определяет тип зависимости по сигнатуре. Повторно используемые зависимости кэшируются внутри одного запроса. Исключения в зависимостях прерывают цепочку и оборачиваются в HTTP-ответ.

Библиотека собеса по Python
Как проектировать стабильный библиотечный API с минимальными ломаниями?

Семвер и строгие контракты типов (PEP 561, точные аннотации), устойчивые имена/аргументы, собственная иерархия исключений, чёткая политика деприкаций (warning → снятие через N минорных версий), стабильные сериализационные форматы, разделение sync/async API без «магии», детерминированные побочные эффекты, зафиксированные минимальные версии зависимостей и хорошее версиирование схем.

Библиотека собеса по Python
3
В продакшн-Django приложении пользователи жалуются на долгие ответы при большом количестве одновременных запросов. Как вы будете диагностировать и устранять проблему?

Проверю профилировщиком SQL-запросы (Django Debug Toolbar, New Relic, Sentry APM), чтобы найти N+1 или долгие join. Оптимизирую ORM через select_related / prefetch_related, добавлю кеширование (Redis, Memcached), connection pooling, а также настрою правильный backend для деплоя (Gunicorn/Uvicorn с несколькими воркерами).

Библиотека собеса по Python
У вас есть Python-сервис, который обрабатывает асинхронные запросы через asyncio. При нагрузочном тесте задержки начинают расти, хотя CPU и память почти не используются. В чём может быть причина и как её решать?

Скорее всего, внутри event loop есть блокирующие операции (синхронные вызовы к БД, файлам или тяжёлые вычисления). Их нужно вынести в отдельный процесс или поток (ProcessPoolExecutor/ThreadPoolExecutor) либо заменить на асинхронные аналоги библиотек.

Библиотека собеса по Python
1
В высоконагруженном Python-сервисе вы замечаете, что при увеличении числа потоков скорость обработки CPU-bound задач не растёт. Почему так происходит и как это исправить?

Из-за GIL только один поток выполняет байткод одновременно, поэтому многопоточность не ускоряет CPU-bound задачи. Решение — использовать multiprocessing, вынести тяжёлые вычисления в C-расширения или применять библиотеки вроде NumPy, которые обходят GIL.

Библиотека собеса по Python
👍3
Как сделать идемпотентное создание записи при гонке (двойной запрос) в Django?

Ввести уникальный бизнес-ключ (UniqueConstraint), обернуть в transaction.atomic(), использовать get_or_create() либо create() с перехватом IntegrityError и затем get(). Не делать предварительных exists(). При зависимостях — лочить родителя select_for_update().

Библиотека собеса по Python
Как получить IP-адрес посетителя в Flask?

Ответ: Чтобы получить IP-адрес посетителя во Flask, мы используем метод request.remote_addr. Ниже представлена его реализация.

from flask import Flask, request

app = Flask(__name__)

@app.route('/')
def get_visitor_ip():
visitor_ip = request.remote_addr
return f"Visitor's IP address is: {visitor_ip}"

if __name__ == '__main__':
app.run(debug=True)


Библиотека собеса по Python
Какое расширение используется для подключения к базе данных во Flask?

Расширение улучшает управление базами данных и взаимодействие с ними во время разработки, устраняя необходимость написания простых SQL-запросов. PostgreSQL, SQLite и MySQL — лишь некоторые из поддерживаемых Flask СУБД. Для подключения к базам данных требуется плагин Flask-SQLAlchemy.

Библиотека собеса по Python
Что такое Docstring?

Docstring (дословно «строка документации») — это строка, которая используется для документирования модулей, функций, классов и методов в вашем коде. Она представляет собой строковый литерал, который следует сразу после определения элемента кода и предназначен для объяснения, как работает этот элемент, какие аргументы он принимает, какие значения возвращает и другие важные детали.

Обычно docstring располагается в самом верхнем уровне определения элемента кода и заключается в тройные кавычки (одинарные или двойные).


Библиотека собеса по Python
Какой метод использовался до оператора in для проверки наличия ключа в словаре?

До появления оператора in в Python, чтобы проверить, содержит ли словарь определенный ключ, использовался метод словаря has_key().

Этот метод принимал в качестве аргумента проверяемый ключ и возвращал логическое значение - True, если ключ присутствовал в словаре, и False - если нет.

В Python 2.5 появился более понятный и краткий оператор in, поэтому сейчас рекомендуется использовать именно его, а has_key() считается устаревши
м.


Библиотека собеса по Python
👾1