Ответ
В 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