1574 вопроса по Python с технических собеседований
1574 вопроса1634 компании353 технологии
Что проверяют на интервью
Как устроена подборка
На странице собраны вопросы по Python — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: python, backend, database.
Объясните реальные причины разделения: характер нагрузки, библиотеки, компетенции команды и стоимость сопровождения. Python мог быть удобен для ML-интеграций, Go — для определённых сетевых или конкурентных сервисов.
Compact dict разделяет разреженную таблицу индексов и плотные записи элементов, уменьшая пустые затраты памяти. Порядок вставки в CPython 3.6 был свойством реализации, а с Python 3.7 стал гарантией языка.
async def создаёт native coroutine, а await приостанавливает её, пока ожидаемый объект не завершится. Механизм использует сохраняемое состояние исполнения, но native coroutine — не обычный генератор.
set хранит уникальные элементы, а dict — соответствия уникальных ключей значениям. В обоих случаях элементы set и ключи dict должны быть хешируемыми; значения словаря могут быть любыми объектами.
В asyncio coroutine уступает управление при ожидании незавершённой операции, после чего event loop может выполнить другую готовую задачу. await не обязательно вызывает переключение каждый раз.
Экспериментальная free-threaded сборка CPython 3.13 позволяет Python-потокам работать параллельно на разных ядрах без обычного GIL. Это отдельный режим, а не автоматическое изменение всех установок Python 3.13.
Расскажите, изучали ли вы байткод через dis и для какой задачи: понимание исполнения, анализ производительности или отладка. Для обычной разработки писать байткод вручную обычно не требуется.
В одном процессе можно защитить проверку и изменение баланса общим Lock. Важно блокировать весь read-check-write, а не только присваивание; все обращения к состоянию должны соблюдать тот же протокол.
Итератор выдаёт значения через next() и завершает обход исключением StopIteration. Генератор — удобный способ создать итератор с помощью функции с yield или генераторного выражения.
К изменяемым относятся list, dict, set и bytearray; к неизменяемым — int, float, bool, str, tuple, bytes и frozenset. Изменяемость описывает возможность менять сам объект, а не переприсваивать переменную.
Event loop регистрирует сетевые дескрипторы и ждёт уведомлений о готовности через механизм ОС. На Linux обычно используется epoll; kqueue относится к BSD/macOS, а не к Linux.
В Python к функциональным инструментам относят функции высшего порядка, comprehensions, generators, map/filter, functools и itertools. Важнее показать уместное применение, чем перечислить все имена.