Какие типы данных есть в Python? На какие две большие группы их можно разделить?
🔹 Типы данных в Python
В Python всё является объектом, и у каждого объекта есть тип. Тип данных определяет, какие значения может принимать переменная и какие операции можно с ней выполнять.
🔸 Основные две группы типов:1. Изменяемые (mutable) — объекты, чьё содержимое можно изменить после создания.2. Неизменяемые (immutable) — объекты, которые нельзя изменить после создания; любые изменения создают новый объект.
🔹 Неизменяемые типы данных (Immutable):
Эти объекты нельзя изменить "на месте" — попытка изменить значение приводит к созданию нового объекта.
✅ Примеры:
Тип | Описание |
---|---|
int | Целые числа: 1, -5, 0 |
--- | --- |
float | Числа с плавающей точкой: 3.14, -0.001 |
--- | --- |
complex | Комплексные числа: 2 + 3j |
--- | --- |
bool | Логические значения: True, False |
--- | --- |
str | Строки: "hello", '123' |
--- | --- |
tuple | Кортежи (неизменяемые списки): (1, 2, 3) |
--- | --- |
frozenset | Неизменяемое множество |
--- | --- |
📌 Примеры:
x = "hello"
x\[0\] = 'H' # ❌ Ошибка: строки неизменяемы
a = (1, 2, 3)
a\[1\] = 10 # ❌ Ошибка: кортежи неизменяемы
🔹 Изменяемые типы данных (Mutable):
Можно изменить содержимое объекта без создания нового объекта.
✅ Примеры:
Тип | Описание |
---|---|
list | Списки: [1, 2, 3] |
--- | --- |
dict | Словари (ключ–значение): |
--- | --- |
set | Множества: |
--- | --- |
bytearray | Изменяемый массив байтов |
--- | --- |
📌 Примеры:
lst = \[1, 2, 3\]
lst\[0\] = 10 # ✅ Работает — список изменяемый
d = {"name": "Alice"}
d\["name"\] = "Bob" # ✅ Словарь изменяемый
🔹 Все встроенные типы данных Python
Ниже собраны основные встроенные типы, разделённые по категориям:
1. Числовые типы (numeric types):
-
int — целые числа
-
float — числа с плавающей точкой
-
complex — комплексные числа
2. Последовательности (sequences):
-
str — строки
-
list — списки
-
tuple — кортежи
-
range — диапазоны (обычно используется в циклах)
3. Множества (sets):
-
set — изменяемое множество
-
frozenset — неизменяемое множество
4. Отображения (mappings):
- dict — словари
5. Булев тип:
- bool — логические значения (True, False)
6. Байтовые типы:
-
bytes — неизменяемая последовательность байтов
-
bytearray — изменяемая последовательность байтов
-
memoryview — представление на буфер байтов
7. NoneType:
- None — специальный тип, обозначающий "ничего", "отсутствие значения"
🔹 Дополнительно: составные и пользовательские типы
Python позволяет создавать:
-
Пользовательские классы: создаются с помощью class, наследуются от object.
-
**Коллекции из модуля collections:
**-
deque — двусторонняя очередь
-
defaultdict, Counter, OrderedDict и др.
-
🔹 Как проверить тип в Python?
Используются функции:
type(x) # показывает тип
isinstance(x, тип) # проверяет принадлежность
Пример:
x = \[1, 2, 3\]
print(type(x)) # <class 'list'>
print(isinstance(x, list)) # True
🔹 Почему важно различать изменяемые и неизменяемые?
-
**Передача в функции:
**-
Изменяемые объекты могут измениться внутри функции.
-
Неизменяемые не меняются — можно быть уверенным в их сохранности.
-
-
**Хешируемость:
**-
Неизменяемые типы могут быть ключами словаря (например, tuple, str).
-
Изменяемые — не могут быть ключами (например, list или dict), так как их хеш может меняться.
-
🔹 Таблица сравнения изменяемых и неизменяемых типов:
Тип данных | Изменяемость | Пример |
---|---|---|
int | ❌ Нет | 5 |
--- | --- | --- |
float | ❌ Нет | 3.14 |
--- | --- | --- |
bool | ❌ Нет | True |
--- | --- | --- |
str | ❌ Нет | "Python" |
--- | --- | --- |
tuple | ❌ Нет | (1, 2, 3) |
--- | --- | --- |
frozenset | ❌ Нет | frozenset([1]) |
--- | --- | --- |
list | ✅ Да | [1, 2] |
--- | --- | --- |
dict | ✅ Да | {"a": 1} |
--- | --- | --- |
set | ✅ Да | {1, 2} |
--- | --- | --- |
bytearray | ✅ Да | bytearray(b"abc") |
--- | --- | --- |
🔹 Заключение
Типы данных в Python — это основа языка, от которой зависит поведение переменных, возможность их изменения, и способы использования в алгоритмах. Все типы делятся на две большие категории:
-
Неизменяемые (immutable): безопасны, предсказуемы, можно использовать в качестве ключей.
-
Изменяемые (mutable): удобны при работе с коллекциями, изменяются "на месте", требуют осторожности.