Перейти к содержимому
На этой странице

Основные концепции Python

Все темы Python Developer

Подтемы:

Какие типы данных существуют?

В Python существует несколько основных типов данных:

Неизменяемые типы данных:

  1. Целые числа (int): Представляют целые числа без десятичной части. Например: 5, -10, 1000

  2. Вещественные числа (float): Представляют числа с десятичной точкой. Например: 3.14, -0.001, 2.0.

  3. Строки (str): Представляют текст. Например: “Привет!”, ‘Python’, “”“Многострочная строка”“”.

  4. Кортежи (tuples): Упорядоченные неизменяемые коллекции объектов. Например: (1, 2, 3, 4), (”apple”, “banana”, “melon”)

Изменяемые типы данных:

  1. Списки (lists): Упорядоченные изменяемые коллекции объектов. Например: [1, 2, 3, 4], [”basketball”, “hockey”, “volleyball”]

  2. Словари (dict): Коллекции пар ключ-значение, сохраняющие порядок добавления ключей. Например: {0: [1, 2, 3], 1: “apple”, “banana”: (3, 4, 5)}.

  3. Множества (sets): Неупорядоченные коллекции уникальных элементов. Например: {1, 3, 4}

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


Типы данных, в чем отличия, где какие лучше использовать?

В Python существует несколько основных типов данных:
  1. Числа (int, float): int хранит целые числа произвольной точности, а float хранит числа с плавающей точкой с ограниченной точностью. Скорость операций зависит от значений и операции; дробные значения float часто представлены приближённо.

  2. Строки (str): Неизменяемые последовательности символов Unicode. Операции изменения текста создают новую строку.

  3. Списки (list): Используются для хранения упорядоченной коллекции элементов. Списки являются изменяемыми и могут содержать элементы различных типов. Они предоставляют множество методов для манипуляции данными, таких как добавление, удаление и изменение элементов.

  4. Кортежи (tuple): Похожи на списки, но являются неизменяемыми. Они часто используются для представления неизменяемых коллекций данных или для возвращения нескольких значений из функций.

  5. Множества (set): Используются для хранения уникальных элементов без упорядочения. Множества предоставляют эффективные операции для проверки наличия элементов и операции над множествами, такие как объединение, пересечение и разность.

  6. Словари (dict): Используются для хранения пар ключ-значение. Словари предоставляют быстрый доступ к значениям по ключу и эффективные операции добавления, удаления и изменения элементов.

Выбор типа данных зависит от конкретной задачи.

  • Если требуется хранить коллекцию упорядоченных элементов с возможностью изменения, лучше использовать список.

  • Если требуется хранить набор уникальных элементов, лучше использовать множество.

  • Если требуется хранить данные в виде пар ключ-значение, лучше использовать словарь.

  • Если данные не должны изменяться после создания, лучше использовать неизменяемый тип данных, такой как кортеж или неизменяемая строка.


Что означает None и почему его проверяют через is?

None обозначает отсутствие значения и является единственным объектом типа NoneType. Его проверяют через is None, потому что это проверка идентичности с singleton-объектом. == None может вызвать пользовательский __eq__ и дать неожиданный результат. None нельзя смешивать с другими falsy-значениями: 0, False, пустая строка и пустая коллекция могут быть допустимыми данными. Контракт должен отличать отсутствие значения от допустимого falsy-значения и сохранять различие на границах.


Чем pass отличается от Ellipsis?

pass является оператором и ничего не делает; он нужен там, где синтаксис требует блок. Ellipsis это реальный singleton-объект, записываемый как ..., который можно вернуть, сохранить или использовать в индексировании и заглушках. Функция с одним pass неявно возвращает None, а функция с выражением ... тоже дойдет до неявного None, если явно не сделан return .... Контракт должен отличать отсутствие значения от допустимого falsy-значения и сохранять различие на границах.


В чем разница между операторами is и ==?

Оператор == сравнивает значения двух объектов, тогда как оператор is сравнивает их идентичность, проверяя, указывают ли обе переменные на один и тот же объект в памяти.

Собеседования: Python

Смотри записи интервью, узнай, какие вопросы задают и как отвечают кандидаты.

Вопросы и ответы

Не нашли ответ? Напишите мне в чат. Я делаю Шпаргалку и сам отвечаю на сообщения. Расскажите, что не работает или чего вам не хватает. Может, смогу сразу взять это в работу.

Откуда взяты вопросы?

Из реальных собеседований. Основой подборки стал опыт Вадима Новосёлова: он проходил интервью и записывал вопросы. Подробнее о материалах.

Насколько эти вопросы актуальны?

Эти вопросы встречались нам на реальных собеседованиях в 2025 году. Мы регулярно проходим собеседования и пополняем подборку новыми вопросами. Основы профессии и ключевые технологии остаются востребованными годами, а детали конкретных инструментов и версий стоит сверять с текущей документацией.

На какой уровень рассчитана подборка?

Мы проходили собеседования на вакансии уровня Middle+, а иногда и на Senior-позиции. Вопросы из этих интервью вошли в подборку. Направления работы: Python-разработчик, Backend-разработчик на Python. Глубина обсуждения зависит от вакансии: будь готов объяснить основную идею, привести практический пример и разобрать ограничения и альтернативы решения.

Этот вопрос точно будет на моём собеседовании?

Гарантии нет: набор вопросов зависит от компании, задач команды, уровня вакансии и самого интервьюера. Эти вопросы уже встречались на реальных собеседованиях, но на твоём интервью ту же тему могут проверить другой формулировкой, практической задачей или обсуждением твоего опыта. Используй подборку, чтобы разобраться в теме: объясняй идею своими словами, приводи примеры и готовься обсудить ограничения и альтернативы решения. Так будет проще ответить и на знакомый вопрос, и на неожиданные уточнения.