Python: вопросы на собеседовании
Вопросы и ответы по Python: подготовка, примеры и типичные ошибки.
Проверьте себя по Python: 5 вопросов, ~10 минут
Вопросов: 153. Частые идут первыми, сложные возвращаются на повторение.
- Объясните
asyncio— что такое event loop и как работаетasync/await?Senior· спрашивают почти всегда· полный разбор — Jobs/Boost - Как дебажить медленный endpoint в production?Senior· спрашивают почти всегда
- Что такое декораторы в Python и как их реализовать?Junior· спрашивают почти всегда
- Как работает Global Interpreter Lock (GIL) в Python и какие у него последствия для многопоточности?Senior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как работает event loop в asyncio?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как работает exception handling в Python?Junior· спрашивают почти всегда
- Как Python управляет памятью?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как работает yield?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как устроена работа с БД через SQLAlchemy?Middle· спрашивают почти всегда
- Как тестировать код, который работает с внешним API?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- В чём разница между списком (list) и кортежем (tuple) в Python?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как Python обрабатывает изменяемые аргументы по умолчанию и в чём типичная ошибка?Middle· спрашивают почти всегда
- Что такое N+1 query problem и как его находить?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое fixtures в pytest?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Чем pytest отличается от unittest?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое *args и **kwargs? Как работает распаковка аргументов при вызове функции?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что делает async / await под капотом?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Для каких задач Python является сильным выбором, а где лучше честно выбрать другой язык?Middle· спрашивают почти всегда
- Что такое замыкание? Приведи пример, где это полезно.Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что делает list/dict/set comprehension? Чем comprehension отличается от generator expression?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое dataclass? Какие проблемы он решает?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как работают default arguments в Python? В какой момент они вычисляются?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как работает dict внутри? Почему доступ по ключу обычно O(1)?Middle· спрашивают почти всегда
- Как работают __enter__ и __exit__?Middle· спрашивают почти всегда
- Что такое finally?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое генераторы в Python и чем они отличаются от обычных функций?Middle· спрашивают почти всегда
- Как GIL влияет на CPU-bound и I/O-bound задачи?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Чем отличается обычный метод, @classmethod и @staticmethod?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- В чём разница между is и ==? Когда обязательно использовать is?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Чем итератор отличается от итерируемого объекта?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое __iter__ и __next__?Junior· спрашивают почти всегда
- Объясни LEGB-правило поиска имён.Junior· спрашивают почти всегда
- В чём разница между list и tuple? Когда что использовать?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое lock-файл и зачем он нужен?Middle· спрашивают почти всегда
- Что выведет def f(x, lst=[]): lst.append(x); return lst при двух последовательных вызовах и почему?Junior· спрашивают почти всегда
- Какие типы в Python изменяемые, а какие нет? Что значит hashable?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое reference counting?Middle· спрашивают почти всегда
- Как ты обеспечиваешь воспроизводимость окружения в Python-проекте?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Чем str отличается от bytes? Когда нужен каждый из этих типов?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое super() и как он работает при множественном наследовании?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое truthy и falsy значения в Python?Junior· спрашивают почти всегда
- Что такое type hints и зачем они нужны?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что блокирует event loop и как этого избегать?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое ASGI?Middle· спрашивают почти всегда
- Что такое контекстный менеджер?Junior· спрашивают почти всегда
- Что такое декоратор?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое генератор?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое GIL?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое MRO?Middle· спрашивают почти всегда
- Что такое SQLAlchemy session?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое WSGI?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Когда использовать asyncio?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Когда использовать multiprocessing?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Когда использовать threading?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Зачем нужен ASGI и почему WSGI недостаточно для async-приложений?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что плохого в except: без указания типа исключения?Junior· спрашивают почти всегда
- Почему изменяемые объекты обычно не могут быть ключами словаря или элементами set?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Зачем нужны mypy или pyright?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Какие встроенные структуры данных есть в Python и когда каждую из них следует использовать?Junior· полный разбор — Jobs/Boost
- Как работают замыкания (closures) в Python? Приведите пример.Junior