JavaRush /Курси /Модуль 1: Python Core /Перетворення типів даних

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

Модуль 1: Python Core
Рівень 4 , Лекція 1
Відкрита

Іноді у певному місці коду ми не знаємо, які саме дані зберігаються в змінній. Для цього в Python є функція type(), яка використовується для визначення типу об'єкта.

Це вбудована функція, яка повертає тип вказаного об'єкта, що може бути корисно для налагодження, валідації даних або під час реалізації логіки, що залежить від типів даних.

Принцип роботи функції type()

Коли ти викликаєш type(x), Python повертає спеціальний об'єкт type, який представляє тип змінної x. Наприклад:


x = 1
print(type(x))  # Виведе: <class 'int'>

x = "привіт"
print(type(x))  # Виведе: <class 'str'>

x = [1, 2, 3]
print(type(x))  # Виведе: <class 'list'>

Зверни увагу, що на екран буде виведено слово class. Це тому, що навіть типи int, str, list та інші теж є класами, просто вбудованими — їх не потрібно оголошувати, вони спочатку поставляються разом з Python.

Практичне застосування

Функція type() часто використовується у сценаріях, де необхідно розрізняти дії на основі типу даних.

  • Різні дії можуть бути виконані залежно від типу змінної.
  • У функціях та методах, для впевненості у коректності типів аргументів.

Якщо ти хочеш переконатися, що в змінній міститься число, напиши код наступного виду:


arg = 123
if type(arg) == int:
    print(arg + 10)  # Виведе: 133               

Більш практичний приклад, де ми перевіряємо тип об'єкта, який зберігається в змінній:


arg = "123"
if type(arg) == int:
    print(arg + 10)  # Це не виконається, так як arg - рядок
elif type(arg) == str:
    print(arg + " world")  # Виведе: 123 world
else:
    print("Невідомий тип")               

2.2 Явне надання типу

В Python явне зазначення типу об'єкта відбувається з використанням функцій приведення типів, таких як int(), float(), str(), tuple() та інших. Ці функції дозволяють задавати конкретний тип і перетворювати дані одного типу в інший, що зручно для обробки користувацького введення, виконання математичних операцій або роботи з рядками і колекціями даних.

Приклади функцій приведення типів

int(): Перетворює дані в ціле число. Ми вже неодноразово стикалися з цією функцією і знаємо, що якщо передати рядок з числом, то int() конвертує його в відповідне ціле число.


num = int("123")  # num буде ціле число 123               

float(): Ще одна знайома функція. Перетворює дані в число з плаваючою крапкою.


num = float("123.45")  # num буде 123.45               

str(): Конвертує будь-який об'єкт Python в рядкове подання.


s = str(10.5)  # s буде '10.5'               

tuple(): Перетворює послідовність в кортеж.


t = tuple([1, 2, 3])  # t стане (1, 2, 3)               

list(): Перетворює ітерований об'єкт (наприклад, рядок або кортеж) в список. Ітерований об'єкт — це об'єкт, який можна послідовно перебирати, наприклад, рядки, списки або кортежі.


l = list("abc")  # l буде ['a', 'b', 'c']               

dict(): Створює словник з послідовності ключ-значення.


d = dict([(1, 'a'), (2, 'b')])  # d буде {1: 'a', 2: 'b'}

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

2.3 Перетворення типів

В Python явне перетворення (або приведення) типів дозволяє програмістам контролювати і змінювати типи даних змінних. Це може бути корисно для забезпечення сумісності даних у різних операціях або для виправлення типів даних, отриманих з користувацького введення або при читанні з файлів. По суті, перетворення типів і приведення типів означають одне і те ж — процес зміни типу даних об'єкта на інший тип.

З явним приведенням типів ми вже трохи знайомі. Воно в Python здійснюється за допомогою вбудованих функцій, таких як int(), float(), str(), tuple(), list(), dict(), set() та інших.

Для закріплення наведемо ще кілька прикладів:

Функція Опис Приклад вводу Приклад виводу
int() Перетворення в ціле число int("10") 10
float() Перетворення в число з плаваючою крапкою float("20.5") 20.5
str() Перетворення в рядок str(15) "15"
tuple() Перетворення в кортеж tuple([1, 2, 3]) (1, 2, 3)
list() Перетворення в список list("abc") ['a', 'b', 'c']
dict() Створення словника з пар ключ-значення dict([(1, 'one'), (2, 'two')]) {1: 'one', 2: 'two'}
set() Створення множини з списку set([1, 1, 2, 2, 3, 3]) {1, 2, 3}

Приклади використання

Явне приведення типів використовується у багатьох сценаріях, включаючи:

  • Обробку користувацького введення: Гарантуючи, що введені дані відповідають очікуваному типу даних.
  • Інтероперабельність даних: Коли дані з різних джерел або API повинні бути об'єднані або порівняні.
  • Обробку помилок: Запобігання помилок часу виконання шляхом перетворення даних в підходящий тип перед виконанням операцій.

Кращі практики і застереження

Явне перетворення типів має використовуватися усвідомлено, щоб уникнути втрати даних (наприклад, при конвертації float в int) або помилок перетворення (наприклад, спроби перетворити нечисловий рядок у число).

Важливо також пам'ятати, що деякі перетворення можуть бути неочевидними і приводити до несподіваних результатів, що вимагає ретельної перевірки даних. Наприклад, перетворення int в bool і назад може мати несподівані ефекти :)

Коментарі (3)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Yurii Рівень 8
3 січня 2026
В задачці "Каша" є другий рядок, котрий імпортує значення з попередніх задач, що створило неприємності під час виконання. Тому просто закоментуйте його. Або поясніть НАВІЩО ВІН ТАМ?)
Semen Рівень 21
8 червня 2025
Щось я не зрозумів: який сенс визначати тип результату, якщо ділення будь-яких цілих чисел дасть результат float ?
Alex Stasyuk Рівень 25
1 грудня 2025
В цій задачі може немає, але курс навчальний - і це як приклад. Проробили -> запам'ятали, що така можливість є -> при потребі згадали -> використали.