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

«Какие встроенные типы данных существуют в Python?» — вопрос из категории Основы программирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Python типы данных делятся на встроенные (built-in) и определяемые пользователем. Встроенные типы можно классифицировать по их назначению и изменяемости.

По категориям:

1. Числовые типы (Numeric Types)

  • int — целые числа неограниченной точности. Пример: 42, -10, 0x1A (шестнадцатеричное).
  • float — числа с плавающей запятой двойной точности. Пример: 3.14, 2.5e2 (250.0).
  • complex — комплексные числа. Пример: 1+2j, complex(1, 2).

2. Строковые типы (Text Sequence Type)

  • str — неизменяемая последовательность Unicode-символов. Пример: "Hello", 'World', """Многострочная строка""".

3. Типы последовательностей (Sequence Types)

  • listизменяемая, упорядоченная последовательность. Пример: [1, 2, 3], ['a', 'b'].
  • tupleнеизменяемая, упорядоченная последовательность. Пример: (1, 2, 3), ('x', 'y'). Часто используется для группировки разнородных данных.
  • range — неизменяемая последовательность чисел, обычно используемая в циклах for. Пример: range(5), range(1, 10, 2).

4. Типы множеств (Set Types)

  • setизменяемая неупорядоченная коллекция уникальных элементов. Пример: {1, 2, 3}.
  • frozensetнеизменяемая версия set. Пример: frozenset([1, 2, 3]).

5. Типы отображений (Mapping Type)

  • dictизменяемая коллекция пар ключ-значение, где ключи уникальны и хешируемы. Пример: {"name": "Alice", "age": 30}.

6. Булев тип (Boolean Type)

  • bool — принимает одно из двух значений: True или False. Является подклассом int (True == 1, False == 0).

7. Бинарные типы (Binary Types)

  • bytes — неизменяемая последовательность байтов. Пример: b'hello', bytes([65, 66, 67]).
  • bytearray — изменяемая версия bytes. Пример: bytearray(b'hello').
  • memoryview — предоставляет доступ к внутренним данным объекта через протокол буфера, без копирования.

8. Специальные типы

  • None — тип, представляющий отсутствие значения. Единственный экземпляр — None.

Ключевое отличие: Изменяемость (Mutability)

  • Изменяемые (Mutable): list, dict, set, bytearray. Их содержимое можно менять после создания.
  • Неизменяемые (Immutable): int, float, str, tuple, frozenset, bytes. Созданный объект изменить нельзя.

Пример проверки типа:

x = [1, 2, 3]
print(type(x))  # <class 'list'>
print(isinstance(x, list))  # True