---
title: Основные концепции Python
questionDates:
  q-transfer-0136: '2026-10-01'
  q-transfer-0277: '2026-10-01'
seo:
  description: >-
    Тема «Основные концепции Python» для собеседования Python Developer. Какие
    типы данных существуют? Типы данных, в чем отличия, где какие лучше
    использовать?
  title: Основные концепции Python — Python Developer
---

[Все темы Python Developer](/prep/python-developer)

Подтемы:

- [Основные концепции Python](#q-14bee738d69b81fe846ef5cfbc772daa)
- [Операторы](#q-14bee738d69b81e4aabced160f61f406)

## <strong>Какие типы данных существуют?</strong> [#q-14bee738d69b81fe846ef5cfbc772daa]

<strong>В Python существует несколько основных типов данных&#58;</strong>

#### <strong>Неизменяемые типы данных</strong>&#58;

1. <strong>Целые числа</strong> <code>&#40;int&#41;</code>&#58; Представляют
   целые числа без десятичной части. Например&#58; 5, -10, 1000

1. <strong>Вещественные числа</strong> <code>&#40;float&#41;</code>&#58;
   Представляют числа с десятичной точкой. Например&#58; 3.14, -0.001, 2.0.

1. <strong>Строки</strong> <code>&#40;str&#41;</code>&#58; Представляют текст.
   Например&#58; "Привет!", 'Python', """Многострочная строка""".

1. <strong>Кортежи</strong> <code>&#40;tuples&#41;</code>&#58; Упорядоченные
   неизменяемые коллекции объектов. Например&#58; (1, 2, 3, 4), (”apple”,
   “banana”, “melon”)

#### <strong>Изменяемые типы данных</strong>&#58;

1. <strong>Списки</strong> <code>&#40;lists&#41;</code>&#58; Упорядоченные
   изменяемые коллекции объектов. Например&#58; \[1, 2, 3, 4\], \[”basketball”,
   “hockey”, “volleyball”\]

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

1. <strong>Множества</strong> <code>&#40;sets&#41;</code>&#58; Неупорядоченные коллекции уникальных элементов. Например&#58; \{1, 3, 4\}

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

:::note[Ссылки для изучения]

1. [Типы данных в Python](https://proglib.io/p/samouchitel-po-python-dlya-nachinayushchih-chast-3-tipy-dannyh-preobrazovanie-i-bazovye-operacii-2022-10-14)
   :::

---

## <strong>Типы данных, в чем отличия, где какие лучше использовать?</strong> [#q-14bee738d69b81b887c8f7c34beb07ea]

<strong>В Python существует несколько основных типов данных&#58;</strong>

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

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

1. <strong>Списки</strong> <code>&#40;list&#41;</code>&#58; Используются для
   хранения упорядоченной коллекции элементов. Списки являются изменяемыми и
   могут содержать элементы различных типов. Они предоставляют множество методов
   для манипуляции данными, таких как добавление, удаление и изменение
   элементов.

1. <strong>Кортежи</strong> <code>&#40;tuple&#41;</code>&#58; Похожи на списки,
   но являются неизменяемыми. Они часто используются для представления
   неизменяемых коллекций данных или для возвращения нескольких значений из
   функций.

1. <strong>Множества</strong> <code>&#40;set&#41;</code>&#58; Используются для
   хранения уникальных элементов без упорядочения. Множества предоставляют
   эффективные операции для проверки наличия элементов и операции над
   множествами, такие как объединение, пересечение и разность.

1. <strong>Словари</strong> <code>&#40;dict&#41;</code>&#58; Используются для
   хранения пар ключ-значение. Словари предоставляют быстрый доступ к значениям
   по ключу и эффективные операции добавления, удаления и изменения элементов.

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

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

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

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

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

:::note[Ссылки для изучения]

1. [Типы данных в Python](https://proglib.io/p/samouchitel-po-python-dlya-nachinayushchih-chast-3-tipy-dannyh-preobrazovanie-i-bazovye-operacii-2022-10-14)
   :::

---

## Что означает None и почему его проверяют через is? [#q-transfer-0136]

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

:::note[Ссылки для изучения]

1. [None как единственный объект и проверка идентичности через is — документация Python](https://docs.python.org/ru/3/reference/datamodel.html#none)
   :::

---

## Чем pass отличается от Ellipsis? [#q-transfer-0277]

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

:::note[Ссылки для изучения]

1. [Инструкция pass и многоточие как заглушки кода — документация Python](https://docs.python.org/ru/3/tutorial/controlflow.html#pass-statements)
1. [Ellipsis: единственный объект, доступный как `...` — модель данных Python](https://docs.python.org/ru/3/reference/datamodel.html#ellipsis)
   :::

---

## <strong>В чем разница между операторами</strong> <code>is</code> <strong>и</strong> <code>&#61;&#61;</code><strong>?</strong> [#q-14bee738d69b81e4aabced160f61f406]

Оператор <code>&#61;&#61;</code> сравнивает значения двух объектов, тогда как оператор <code>is</code> сравнивает их идентичность, проверяя, указывают ли обе переменные на один и тот же объект в памяти.

:::note[Ссылки для изучения]

1. [Сравнение значений и идентичности объектов: == и is — документация Python](https://pythondoc.ru/docs/python/3.10/reference/expressions/#comparisons)
   :::
