Python є мовою з динамічною типізацією, що означає, що змінні можуть зберігати значення різних типів без необхідності попереднього оголошення їх типу. Розуміння типів даних у Python є ключовим аспектом для ефективної роботи з цією мовою. У цій статті ми детально розглянемо основні типи даних у Python, їхні особливості та як їх можна використовувати.
Основні типи даних у Python
Python підтримує кілька вбудованих типів даних, які можна поділити на такі категорії:
- Прості (скалярні) типи: цілі числа, числа з плаваючою крапкою, логічні значення тощо.
- Колекції: списки, кортежі, словники, множини тощо.
- Спеціальні типи: тип
None, об’єкти класів, функції тощо.
1. Цілі числа (int)
Тип int використовується для представлення цілих чисел. Python підтримує як позитивні, так і негативні числа будь-якої величини, оскільки його реалізація не обмежена фіксованою кількістю байтів.
Приклад:
x = 10
y = -5
Операції з цілими числами:
a = 7 + 3 # додавання
b = 7 - 2 # віднімання
c = 7 * 2 # множення
d = 7 // 2 # ділення без остачі
e = 7 % 2 # остача від ділення
f = 7 ** 2 # піднесення до степеня
2. Числа з плаваючою крапкою (float)
Тип float використовується для зберігання чисел з десятковими дробами або експоненційною формою запису.
Приклад:
x = 3.14
y = -0.5
z = 1.5e2 # експоненційний запис числа (150.0)
Операції з числами типу float схожі на операції з цілими числами, але результат може бути не точним через особливості зберігання чисел з плаваючою крапкою в комп’ютері.
3. Логічні значення (bool)
Тип bool представлений двома значеннями: True і False. Вони зазвичай використовуються в умовних виразах та для управління потоком виконання програми.
Приклад:
x = True
y = False
Тип bool є підтипом int, тому True прирівнюється до 1, а False — до 0.
True + 1 # результат: 2
False * 5 # результат: 0
4. Рядки (str)
Тип str використовується для зберігання послідовностей символів. Рядки в Python підтримують як одиночні, так і подвійні лапки.
Приклад:
name = "John"
greeting = 'Hello, world!'
Рядки є незмінними, тобто після створення їх не можна змінити. Однак можна виконувати різні операції над рядками:
- Конкатенація:
"Hello" + " " + "world" # результат: 'Hello world'
- Повторення:
"Hi! " * 3 # результат: 'Hi! Hi! Hi! '
- Доступ за індексом:
name[0] # результат: 'J'
- Зрізи:
greeting[0:5] # результат: 'Hello'
5. Списки (list)
Список (list) — це впорядкована змінна колекція об’єктів будь-якого типу. Списки можуть містити інші списки, рядки, числа і навіть функції.
Приклад:
fruits = ["apple", "banana", "cherry"]
numbers = [1, 2, 3, 4]
mixed_list = [1, "apple", True]
Основні операції зі списками:
- Додавання елементів:
fruits.append("orange")
- Видалення елементів:
fruits.remove("banana")
- Доступ за індексом:
fruits[0] # результат: 'apple'
- Зрізи:
numbers[1:3] # результат: [2, 3]
Списки є змінними, тому їх можна змінювати після створення.
6. Кортежі (tuple)
Кортежі (tuple) схожі на списки, але вони є незмінними, тобто після створення їх не можна змінювати.
Приклад:
coordinates = (10, 20)
single_element_tuple = (5,) # важливо включити кому
Кортежі використовуються, коли потрібна захищеність від зміни структури даних.
7. Множини (set)
Множина (set) — це невпорядкована колекція унікальних елементів. Вона дозволяє виконувати операції над множинами, такі як об’єднання, перетин та різниця.
Приклад:
unique_numbers = {1, 2, 3, 4, 4} # результат: {1, 2, 3, 4}
Основні операції:
- Додавання елементів:
unique_numbers.add(5)
- Перетин:
a = {1, 2, 3}
b = {2, 3, 4}
a & b # результат: {2, 3}
- Об’єднання:
a | b # результат: {1, 2, 3, 4}
8. Словники (dict)
Словник (dict) — це невпорядкована колекція пар ключ-значення. Ключі повинні бути унікальними і незмінними (як правило, рядки або числа), а значення можуть бути будь-якого типу.
Приклад:
person = {"name": "John", "age": 30, "city": "New York"}
Основні операції зі словниками:
- Додавання або зміна значення:
person["age"] = 31
- Доступ до значення за ключем:
person["name"] # результат: 'John'
- Видалення елемента:
del person["city"]
9. NoneType
Тип None використовується для позначення відсутності значення. Це особливий тип, який може використовуватися для позначення “порожніх” значень або результату функцій, які нічого не повертають.
Приклад:
x = None
Функції, які не повертають значення, фактично повертають None:
def my_function():
pass
result = my_function()
print(result) # результат: None
Як розрізняти типи даних у Python

Python надає кілька вбудованих функцій для роботи з типами даних:
type()— повертає тип змінної.
x = 10
print(type(x)) # результат: <class 'int'>
isinstance()— перевіряє, чи належить змінна до певного типу.
x = 10
print(isinstance(x, int)) # результат: True
- Конвертація типів — Python дозволяє змінювати типи даних за допомогою таких функцій, як
int(),float(),str(),list(),tuple()тощо.
Приклад:
x = "123"
y = int(x) # перетворює рядок на ціле число
Висновок
Python підтримує широкий набір вбудованих типів даних, що дозволяє легко працювати з різними структурами даних. Важливо знати, як правильно використовувати кожен тип, щоб ефективно організовувати та обробляти інформацію в програмі. Розуміння типів даних також сприяє уникненню помилок і покращує продуктивність коду.
Анотації типів (Type Hints) та статична перевірка
Попри те, що Python є мовою з динамічною типізацією, з версії 3.5 у мові офіційно підтримуються анотації типів (type hints). Станом на 2026 рік їх використання стало стандартом у професійній розробці, особливо у великих проєктах, backend-системах та бібліотеках з відкритим кодом. Анотації не змінюють поведінку програми під час виконання, але дозволяють інструментам статичного аналізу (наприклад, mypy, pyright, ruff) перевіряти коректність типів ще до запуску коду.
def greet(name: str) -> str:
return f"Hello, {name}"
def add(a: int, b: int) -> int:
return a + b
Сучасний Python активно розвиває систему типів. Наприклад, починаючи з Python 3.10 можна використовувати більш компактний синтаксис об’єднання типів:
def process(value: int | None) -> str:
if value is None:
return "No value"
return str(value)
Також широко застосовуються узагальнені типи (generics) з модуля typing:
from typing import List, Dict
numbers: List[int] = [1, 2, 3]
user_ages: Dict[str, int] = {"Alice": 25, "Bob": 30}
За даними опитувань спільноти Python Developer Survey (PSF), більшість професійних розробників використовують анотації типів у комерційних проєктах, оскільки це підвищує читабельність коду, спрощує рефакторинг та зменшує кількість помилок у великих системах.
Змінні та незмінні типи даних (mutable vs immutable)
Однією з фундаментальних концепцій роботи з типами даних у Python є розуміння різниці між змінними (mutable) та незмінними (immutable) типами. Незмінні об’єкти не можуть бути змінені після створення — при будь-якій зміні фактично створюється новий об’єкт у пам’яті. До таких типів належать int, float, bool, str, tuple.
Змінні типи можна модифікувати без створення нового об’єкта. До них належать list, dict, set. Це важливо враховувати під час передачі об’єктів у функції, оскільки зміни можуть впливати на вихідні дані.
def add_item(items: list) -> None:
items.append("new")
my_list = [1, 2, 3]
add_item(my_list)
print(my_list) # результат: [1, 2, 3, 'new']
Розуміння цієї різниці критично важливе для написання передбачуваного та безпечного коду. У сучасній розробці це також має велике значення при роботі з багатопотоковістю, асинхронністю та функціональним стилем програмування, де незмінність об’єктів допомагає уникати побічних ефектів.
Оновлено 11.03.2026

