ГлавнаяПодготовка к собеседованию Python
PYTHON · BACKEND · ПРАКТИКА

Собеседование
по Python.
Начни с практики.

Разбери вопросы с объяснениями, реши задачу и проверь, что стоит повторить перед техническим интервью.

Примеры открыты без регистрации

ПОПРОБУЙ ПРЯМО СЕЙЧАС

Что выведет код?

def add(item, items=[]):
    items.append(item)
    return items

print(add(1))
print(add(2))
Выбери ответ
Выбери вариант, чтобы проверить ответ и прочитать объяснение.
01 / ПРОВЕРЬ ОСНОВЫ

Вопросы на собеседовании Python

Начни с ответа своими словами. Затем открой разбор и проверь, можешь ли объяснить не только правило, но и пример его применения.

01Типы данныхЧем list отличается от tuple?

list — изменяемая последовательность: можно добавлять, удалять и заменять элементы. tuple — неизменяемая последовательность: заменить её элементы нельзя. Но объект внутри tuple может быть изменяемым, например список. Для ключа словаря подходит только хешируемый tuple, элементы которого тоже хешируемы.

Уточнение на интервью

Можно ли использовать tuple со списком внутри как ключ словаря? Нет: такой tuple не хешируем.

02ФункцииПочему изменяемый аргумент по умолчанию опасен?

Значение аргумента по умолчанию вычисляется один раз при определении функции. Если это список или словарь, разные вызовы могут менять один и тот же объект. Обычно используют None, а новый список создают внутри функции.

Уточнение на интервью

Объясни, почему два вызова add_item(1) и add_item(2) могут вернуть список [1, 2], если items=[] задано в сигнатуре.

03ИтерацияЧем генератор отличается от списка?

Список хранит все элементы. Генератор выдаёт значения по мере обращения и сохраняет состояние выполнения между ними. Он помогает обрабатывать поток данных без хранения всей последовательности, но после исчерпания его нельзя пройти заново без создания нового генератора.

Уточнение на интервью

Для файла большого размера объясни, когда лучше читать строки по одной, а когда всё содержимое сразу.

04НадёжностьЧто проверять при обработке исключений?

Перехватывай ожидаемые типы исключений и не скрывай ошибку без объяснения. Блок else выполняется, если в try не было исключения; finally предназначен для завершающих действий. Для управления ресурсами, например файлами, обычно удобнее контекстный менеджер with.

Уточнение на интервью

Что произойдёт, если перехватить Exception и просто выполнить pass? Ошибка останется незаметной для вызывающего кода.

02 / ОТ ОБЪЯСНЕНИЯ К РЕШЕНИЮ

Убери повторы. Сохрани порядок.

Напиши функцию, которая удаляет повторяющиеся целые числа из списка и сохраняет порядок первого появления.

ПРАКТИЧЕСКАЯ ЗАДАЧАPYTHON
unique([3, 1, 3, 2, 1])
# Ожидаемый результат: [3, 1, 2]

unique([])
# Ожидаемый результат: []

Проверь основной сценарий и крайние случаи. Объясни ход решения и ограничения выбранного подхода.

Посмотреть решение и разбор
def unique(values):
    seen = set()
    result = []
    for value in values:
        if value not in seen:
            seen.add(value)
            result.append(value)
    return result

seen хранит уже встреченные числа, а result — ответ в исходном порядке. В среднем время O(n), дополнительная память O(n). set подходит для заданных целых чисел; для произвольных нехешируемых объектов нужен другой подход.

03 / СЛЕДУЮЩИЙ ШАГ ПОНЯТЕН

Собери план подготовки

Отметь пройденные темы. Это пример маршрута: глубину и темп выбирай под свою вакансию и уровень.

Повторено 0 из 5 блоков

ОТ ПРАКТИКИ К ПЛАНУ

Что будет после тренировки?

После тренировки появятся итоговая оценка и общий отзыв. В Pro — подробный разбор ответов, материалы для повторения и все тренировки по System Design.

ПРИМЕР РЕКОМЕНДАЦИИСледующий шаг в подготовке

Объясни, когда создаётся значение аргумента. Затем перепиши функцию с items=None и проверь её двумя последовательными вызовами.

ПЕРЕД ТРЕНИРОВКОЙ

Частые вопросы

Подойдёт ли подготовка для Junior?

Да. Выбери Junior и начни с основ направления. Глубину вопросов и список тем сверяй с требованиями вакансии.

Это курс с нуля?

Это подготовка к техническому интервью и практика уже изученных навыков. Для старта пригодятся базовые знания выбранного направления.

Что доступно без аккаунта?

Все вопросы, разборы, задача и план на этой странице. Для персональной тренировки и сохранения результатов понадобится аккаунт. Условия — на странице тарифов.

ПОСЛЕ ТРЕНИРОВКИ

Не просто оценка.
Понятно, что
повторить дальше.

Посмотри, как выглядит результат по Python: что уже получается, в каких темах есть ошибки и как разобраться в сложной теме.

  • Результат без догадокИтоговая оценка и общий отзыв
  • Ошибка с объяснениемТвой ответ, правильный ответ и разбор в Pro
  • Материалы по слабым темамСсылки для повторения в Pro
Получить свой первый отчёт

3 тренировки бесплатно. Детальный разбор и материалы доступны с подпиской Pro.

ПРИМЕР ОТЧЁТАPro

Backend · Python

Junior · 10 вопросов · 2 задачи

Основа есть.
Детали стоит закрепить.

Ты уверенно отвечаешь на базовые вопросы по Python. Повтори темы, в которых возникли ошибки.

Теория · 7 из 1070%
Практика · 2 задачи65%
Слабые темы3 темы
  • Типы данных
  • Функции
  • Итерация

Объясни, когда создаётся значение аргумента. Затем перепиши функцию с items=None и проверь её двумя последовательными вызовами.

Результат одной тренировкиДетальный отчёт · Pro
Демонстрационные данные.
Твой отчёт зависит от выбранного стека и ответов.
Попробуй переключить разделы ↑

Другая технология или направление?

Настроить подготовку под свой стек