Перетворення типів даних
Навіщо перетворювати дані та як це робити правильно.
1 Чому це важливо?
Коли ми отримуємо дані від користувача через функцію
input(), Python завжди сприймає їх як рядок (str). Навіть якщо користувач ввів число.
Помилка: "5" + 2
Призведе до помилки TypeError, тому що не можна додавати текст до числа.
🍎 Життєвий приклад: Склад продуктів
Уявіть, що ви працюєте на складі. У вас є ящики з яблуками та етикетки з цифрами.
- • Число (int): Це реальні 5 яблук у кошику. Ви можете їх з'їсти або додати до них ще 2.
- • Рядок (str): Це наклейка, на якій написано "5". Ви не можете з'їсти наклейку, а якщо приклеїте поруч "2", ви отримаєте "52".
наклейка = "5"
яблука = int(наклейка)
# Тепер це число!
результат = яблука + 2
# Отримаємо 7
2 Введення даних: функція input()
Щоб програма стала інтерактивною, використовуйте input(). Вона зупиняє виконання коду і чекає, поки
користувач щось надрукує та натисне Enter.
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 під час арифметики.
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.
Це часто зустрічається в підрахунках і умовній логіці.
a = True
b = 10.5
print(a + b) # 11.5 (бо True → 1)
5 Явне перетворення (Explicit Casting)
Явне перетворення виконується функціями-перетворювачами: int(), float(), str(),
list(), tuple(). Їхня мета — створити новий об’єкт потрібного типу.
5.1 int(): типові сценарії
- float → int: дробова частина відкидається (це не округлення).
- str → int: працює лише якщо рядок містить коректне ціле число.
- інша система числення: можна вказати основу (base) — 2, 8 або 16.
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.
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 тощо.
age = 12
print("Мені " + str(age) + " років")
6 Перетворення послідовностей (list, tuple, str)
Послідовності — це впорядковані колекції. Python дозволяє зручно перетворювати рядки, списки та кортежі один в одного. Це часто використовується у парсингу даних, обробці тексту та підготовці наборів даних.
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()).
Як запустити свій код?
В IDLE: Натисніть File -> New File, вставте код, збережіть (Ctrl+S) та натисніть F5.
У VS Code:
Створіть файл з розширенням .py, натисніть кнопку Run (трикутник справа зверху) або введіть
python file_name.py в терміналі.