Типи даних у Python: які вони бувають і як їх розрізняти

Типи даних у Python: які вони бувають і як їх розрізняти

Python є мовою з динамічною типізацією, що означає, що змінні можуть зберігати значення різних типів без необхідності попереднього оголошення їх типу. Розуміння типів даних у Python є ключовим аспектом для ефективної роботи з цією мовою. У цій статті ми детально розглянемо основні типи даних у Python, їхні особливості та як їх можна використовувати.

Основні типи даних у Python

Python підтримує кілька вбудованих типів даних, які можна поділити на такі категорії:

  1. Прості (скалярні) типи: цілі числа, числа з плаваючою крапкою, логічні значення тощо.
  2. Колекції: списки, кортежі, словники, множини тощо.
  3. Спеціальні типи: тип 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

Python надає кілька вбудованих функцій для роботи з типами даних:

  1. type() — повертає тип змінної.
x = 10
print(type(x))  # результат: <class 'int'>
  1. isinstance() — перевіряє, чи належить змінна до певного типу.
x = 10
print(isinstance(x, int))  # результат: True
  1. Конвертація типів — 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

ChatGPT Perplexity Google (AI)