← Назад к вопросам

Какие типы данных есть в Python?

1.3 Junior🔥 131 комментариев
#Python

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Типы данных в Python

Основные встроенные типы

Python поддерживает несколько основных типов данных, которые разделяются на изменяемые и неизменяемые.

1. Числовые типы

int — целые числа

x = 10
y = -5
z = 0
print(type(x))  # <class "int">

# Большие числа
big_num = 123456789012345678901234567890
print(big_num)

float — вещественные числа

x = 3.14
y = -2.5
z = 1e-3  # 0.001
print(type(x))  # <class "float">

complex — комплексные числа

z = 3 + 4j
print(z.real)  # 3
print(z.imag)  # 4

2. Строки (String)

s = "Hello"
s2 = "World"
s3 = """Multi
line
string"""

print(type(s))  # <class "str">
print(len(s))   # 5
print(s.upper())  # HELLO

Неизменяемый тип — нельзя изменить отдельный символ:

s = "hello"
s[0] = "H"  # TypeError

3. Булевы значения (Boolean)

x = True
y = False
print(type(x))  # <class "bool">

# Любое значение может быть преобразовано в bool
print(bool(0))      # False
print(bool(1))      # True
print(bool(""))     # False
print(bool("text")) # True

4. Список (List)

Изменяемый, упорядоченный набор элементов

my_list = [1, 2, 3, "hello", 3.14]
print(type(my_list))  # <class "list">

# Изменение
my_list[0] = 10
my_list.append(100)
my_list.pop()  # Удалить последний

5. Кортеж (Tuple)

Неизменяемый, упорядоченный набор элементов

my_tuple = (1, 2, 3, "hello")
print(type(my_tuple))  # <class "tuple">

# Нельзя изменять
my_tuple[0] = 10  # TypeError

# Используется для возврата нескольких значений
def get_coords():
    return (10, 20)

x, y = get_coords()

6. Словарь (Dictionary)

Изменяемый набор ключ-значение

my_dict = {"name": "John", "age": 30, "city": "Moscow"}
print(type(my_dict))  # <class "dict">

print(my_dict["name"])  # John
my_dict["age"] = 31
my_dict["email"] = "john@example.com"

# Итерация
for key, value in my_dict.items():
    print(f"{key}: {value}")

7. Множество (Set)

Изменяемый, неупорядоченный набор уникальных элементов

my_set = {1, 2, 3, 3, 4}  # {1, 2, 3, 4}
print(type(my_set))  # <class "set">

# Операции с множествами
my_set.add(5)
my_set.remove(2)

set1 = {1, 2, 3}
set2 = {2, 3, 4}

print(set1.union(set2))        # {1, 2, 3, 4}
print(set1.intersection(set2)) # {2, 3}
print(set1.difference(set2))   # {1}

8. Frozenset

Неизменяемое множество

fs = frozenset({1, 2, 3})
print(type(fs))  # <class "frozenset">

# Можно использовать как ключ в словаре
my_dict = {fs: "value"}

9. Bytes

Неизменяемая последовательность байт

b = b"hello"
print(type(b))  # <class "bytes">

# Преобразование
s = "hello"
b = s.encode()     # str -> bytes
s2 = b.decode()    # bytes -> str

10. Bytearray

Изменяемая последовательность байт

ba = bytearray(b"hello")
ba[0] = ord("H")
print(ba)  # bytearray(b"Hello")

11. None

Обозначает отсутствие значения

x = None
print(type(x))  # <class "NoneType">

if x is None:
    print("x is None")

Таблица типов

ТипИзменяемыйУпорядоченныйПример
intНетНет42
floatНетНет3.14
strНетДа"hello"
listДаДа[1, 2, 3]
tupleНетДа(1, 2, 3)
dictДаДа*{"a": 1}
setДаНет{1, 2, 3}
frozensetНетНетfrozenset({1})
boolНетНетTrue
bytesНетДаb"hello"
NoneНетНетNone

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

x = 42
print(type(x))                    # <class "int">
print(isinstance(x, int))         # True
print(isinstance(x, (int, float)))  # True

Практический пример для Data Science

import numpy as np
import pandas as pd

# Обычные Python типы
numbers = [1, 2, 3, 4, 5]
names = ["Alice", "Bob", "Charlie"]

# NumPy типы
arr = np.array(numbers)  # ndarray
print(type(arr))  # <class "numpy.ndarray">

# Pandas типы
df = pd.DataFrame({"name": names, "age": [25, 30, 35]})
print(type(df))  # <class "pandas.core.frame.DataFrame">

Заключение

Python поддерживает разнообразные типы данных, от простых (int, float, str) до сложных (list, dict, set). Понимание различий между изменяемыми и неизменяемыми типами критично для написания правильного кода.

Какие типы данных есть в Python? | PrepBro