Какими версиями Python вы пользовались?
Что проверяют
Следите ли вы за языком или застряли на версии из первого проекта. Вопрос звучит анкетно, но ответ показывает возраст вашего стека и то, участвовали ли вы в обновлениях. Следом обычно идёт уточнение: что нового в этих версиях вы реально используете и приходилось ли мигрировать проект.
Как отвечать
Назовите честный диапазон и привяжите его к проектам: где какая версия стояла и почему именно она. Дальше покажите, что понимаете разницу между релизами. Ориентиры, которые стоит держать в голове:
- 3.8 и 3.9: моржовый оператор
:=, объединение словарей через|, встроенные дженерикиlist[int]вместоtyping.List; - 3.10:
match, объединение типов черезX | None, заметно более понятные сообщения об ошибках; - 3.11: прирост скорости порядка четверти на типичном коде,
tomllibв стандартной библиотеке,ExceptionGroupиexcept*,asyncio.TaskGroup; - 3.12: новый разбор f-строк, синтаксис параметров типа
def first[T](items: list[T]) -> T, отдельный GIL на субинтерпретатор; - 3.13: переработанный REPL, экспериментальные сборка без GIL и JIT;
- 3.14: свободнопоточная сборка уже официально поддерживается, ленивое вычисление аннотаций и шаблонные t-строки.
Полезно добавить сроки поддержки: каждая версия получает примерно два года исправлений и ещё три года только для безопасности, поэтому 3.9 уже вне поддержки. И закончите практикой: как вы фиксируете версию (requires-python в pyproject.toml, базовый образ, матрица в CI), как переезжали и что при этом ломалось, например зависимости без колёс под новую версию.
Где спотыкаются
Называют цифры, но не могут вспомнить ни одной особенности версии. Тогда ответ читается как строчка из резюме.
Рассказывают про Python 2 как про живой опыт. Упомянуть его уместно одной фразой в контексте миграции, не больше.
Говорят «последняя», не зная, какая она сейчас, и путают версию на своём ноутбуке с версией в контейнере на проде. Это разные вещи, и разницу стоит проверять до собеседования.