Перетворення типів даних

Навіщо перетворювати дані та як це робити правильно.

1 Чому це важливо?

Коли ми отримуємо дані від користувача через функцію input(), Python завжди сприймає їх як рядок (str). Навіть якщо користувач ввів число.

Помилка: "5" + 2

Призведе до помилки TypeError, тому що не можна додавати текст до числа.

🍎

🍎 Життєвий приклад: Склад продуктів

Уявіть, що ви працюєте на складі. У вас є ящики з яблуками та етикетки з цифрами.

  • • Число (int): Це реальні 5 яблук у кошику. Ви можете їх з'їсти або додати до них ще 2.
  • • Рядок (str): Це наклейка, на якій написано "5". Ви не можете з'їсти наклейку, а якщо приклеїте поруч "2", ви отримаєте "52".
наклейка = "5"
яблука = int(наклейка) 
# Тепер це число!
результат = яблука + 2 
# Отримаємо 7

2 Введення даних: функція input()

Щоб програма стала інтерактивною, використовуйте input(). Вона зупиняє виконання коду і чекає, поки користувач щось надрукує та натисне Enter.

greeting.py
name = input("Як тебе звати? ")
print("Привіт, " + name + "!")

3 Основні функції перетворення

int()

Перетворює на ціле число.

int("10") → 10

float()

На дробове число.

float("10.5") → 10.5

str()

На текст (рядок).

str(100) → "100"

4 Неявне та явне перетворення типів

Перетворення типів (type casting) — це зміна типу об’єкта, щоб його можна було коректно використати в іншому контексті: у математичних обчисленнях, форматуванні тексту, роботі з даними користувача тощо. У Python існують два режими: неявне (implicit) та явне (explicit) перетворення.

4.1 Неявне перетворення (Implicit Casting)

Неявне перетворення виконує сам інтерпретатор, але лише коли це безпечно і не призводить до втрати даних. Найпоширеніший приклад — підвищення int до float під час арифметики.

implicit_casting.py
a = 10      # int
b = 10.5    # float
c = a + b   # int автоматично стає float (10 → 10.0)
print(c)

⭐ Пояснення (важлива ідея)

Python не виконує небезпечних автоматичних перетворень. Наприклад, float → int може втратити дробову частину, тому таке перетворення потрібно робити явно.

4.2 Булеві значення у числових операціях

bool у Python — це підтип int, тому True поводиться як 1, а False — як 0. Це часто зустрічається в підрахунках і умовній логіці.

bool_casting.py
a = True
b = 10.5
print(a + b)   # 11.5 (бо True → 1)

5 Явне перетворення (Explicit Casting)

Явне перетворення виконується функціями-перетворювачами: int(), float(), str(), list(), tuple(). Їхня мета — створити новий об’єкт потрібного типу.

5.1 int(): типові сценарії

int_examples.py
print(int(10.5))          # 10
print(int("100"))         # 100
print(int("110011", 2))   # 51 (двійкова система)
print(int("20", 8))       # 16 (вісімкова)
print(int("2A9", 16))     # 681 (шістнадцяткова)

❗ Важливо

Python не виконує небезпечних автоматичних перетворень. Наприклад, float → int може втратити дробову частину, тому таке перетворення потрібно робити явно.

5.2 float(): рядки, наукова нотація, помилки

float() приймає числа та рядки з коректним дробовим записом. Також підтримується наукова нотація: 1.00E4 або 1.00E-4.

float_examples.py
print(float(100))       # 100.0
print(float("9.99"))    # 9.99
print(float("1.00E4"))  # 10000.0
print(float("1.00E-4")) # 0.0001

5.3 str(): перетворення в текст

str() — це «зворотний напрямок»: замість отримання числа з рядка ми отримуємо рядкове представлення об’єкта. Це потрібно для повідомлень користувачу, логування, формування файлів, JSON, HTML тощо.

str_examples.py
age = 12
print("Мені " + str(age) + " років")

6 Перетворення послідовностей (list, tuple, str)

Послідовності — це впорядковані колекції. Python дозволяє зручно перетворювати рядки, списки та кортежі один в одного. Це часто використовується у парсингу даних, обробці тексту та підготовці наборів даних.

sequence_casting.py
a = [1, 2, 3, 4, 5]
b = (1, 2, 3, 4, 5)
c = "Hello"

print(list(c))   # ['H', 'e', 'l', 'l', 'o']
print(list(b))   # [1, 2, 3, 4, 5]
print(tuple(c))  # ('H', 'e', 'l', 'l', 'o')
print(tuple(a))  # (1, 2, 3, 4, 5)

⭐ Золоте правило

Якщо є ризик втрати даних — Python не зробить перетворення автоматично. У таких випадках відповідальність на програмісті: перетворюйте явно та перевіряйте вхідні дані (особливо з input()).

Як запустити свій код?

1

В IDLE: Натисніть File -> New File, вставте код, збережіть (Ctrl+S) та натисніть F5.

2

У VS Code: Створіть файл з розширенням .py, натисніть кнопку Run (трикутник справа зверху) або введіть python file_name.py в терміналі.