У овом чланку ћете научити о претворби типова и употреби претворбе типова.
Пре него што научите претварање типова у Питхону, требало би да имате знање о типовима података Питхон.
Конверзија типова
Процес претварања вредности једног типа података (цео број, низ, флоат итд.) У други тип података назива се претварање типа. Питхон има две врсте конверзије типова.
- Имплицитна конверзија типа
- Експлицитна конверзија типова
Имплицитна конверзија типа
У имплицитној конверзији типа, Питхон аутоматски претвара један тип података у други тип података. У овом процесу није потребно било какво учешће корисника.
Погледајмо пример где Питхон промовише конверзију нижег типа података (цео број) у виши тип података (флоат) како би избегао губитак података.
Пример 1: Претварање целог броја у плутајуће
num_int = 123 num_flo = 1.23 num_new = num_int + num_flo print("datatype of num_int:",type(num_int)) print("datatype of num_flo:",type(num_flo)) print("Value of num_new:",num_new) print("datatype of num_new:",type(num_new))
Када покренемо горњи програм, излаз ће бити:
тип података нум_инт: тип података нум_фло: Вредност нум_нев: 124.23 тип података нум_нев:
У горњем програму,
- Додамо две променљиве нум_инт и нум_фло, чувајући вредност у нум_нев.
- Размотрићемо тип података сва три објекта.
- У излазу можемо видети тип података нум_инт је
integer
док је тип података нум_фло аfloat
. - Такође, можемо видети да нум_нев има
float
тип података јер Питхон увек претвара мање типове података у веће типове података како би избегао губитак података.
Покушајмо сада да додамо низ и цео број и да видимо како се Питхон носи са тим.
Пример 2: Додавање типа података низа (виши) и целобројног (нижи) типа података
num_int = 123 num_str = "456" print("Data type of num_int:",type(num_int)) print("Data type of num_str:",type(num_str)) print(num_int+num_str)
Када покренемо горњи програм, излаз ће бити:
Тип података нум_инт: Тип података нум_стр: Трацебацк (последњи последњи позив): Датотека „питхон“, ред 7, у ТипеЕррор: неподржани типови операнда за +: 'инт' и 'стр'
У горњем програму,
- Додамо две променљиве нум_инт и нум_стр.
- Као што видимо из резултата, добили смо
TypeError
. Питхон није у могућности да користи Имплицитну конверзију у таквим условима. - Међутим, Питхон има решење за ове врсте ситуација које је познато као експлицитна конверзија.
Експлицитна конверзија типова
У експлицитној конверзији типова, корисници претварају тип података објекта у тражени тип података. Ми користимо унапред дефинисаних функције као што су int()
, float()
, str()
, итд за обављање експлицитно типа конверзију.
Овај тип конверзије назива се и слање типова јер корисник емитује (мења) тип података објеката.
Синтакса:
(израз)
Представљање типова може се извршити додељивањем изразу потребне функције типа података.
Пример 3: Сабирање низа и целог броја помоћу експлицитне конверзије
num_int = 123 num_str = "456" print("Data type of num_int:",type(num_int)) print("Data type of num_str before Type Casting:",type(num_str)) num_str = int(num_str) print("Data type of num_str after Type Casting:",type(num_str)) num_sum = num_int + num_str print("Sum of num_int and num_str:",num_sum) print("Data type of the sum:",type(num_sum))
Када покренемо горњи програм, излаз ће бити:
Тип података нум_инт: Тип података нум_стр пре Цастинга типа: Тип података нум_стр након Цастинга типа: Збир нум_инт и нум_стр: 579 Тип података збира:
У горњем програму,
- Додамо променљиву нум_стр и нум_инт.
- Нум_стр смо конвертовали из низа (виши) у целобројни (нижи) тип користећи
int()
функцију за извршавање сабирања. - Након конверзије нум_стр у целобројну вредност, Питхон је у стању да дода ове две променљиве.
- Вредност нум_сум и тип података добили смо цео број.
Кључне тачке које треба запамтити
- Конверзија типа је конверзија објекта из једног типа података у други тип података.
- Имплицитну конверзију типа аутоматски врши интерпретатор Питхон.
- Питхон избегава губитак података у имплицитној конверзији типова.
- Експлицитна конверзија типова назива се и уливањем типова, типови података се конвертују помоћу унапред дефинисаних функција од стране корисника.
- У лијевању типова може доћи до губитка података док присиљавамо објект на одређени тип података.