В тази статия ще научите за преобразуването на типове и употребите на преобразуването на типа.
Преди да научите преобразуването на типове в Python, трябва да имате познания за типовете данни на Python.
Преобразуване на тип
Процесът на преобразуване на стойността на един тип данни (цяло число, низ, плаващ и т.н.) в друг тип данни се нарича преобразуване на типа. Python има два типа преобразуване на типа.
- Неявно преобразуване на типа
- Изрично преобразуване на типове
Неявно преобразуване на типа
При имплицитно преобразуване на типа Python автоматично преобразува един тип данни в друг тип данни. Този процес не се нуждае от никакво участие на потребителя.
Нека видим пример, при който Python насърчава преобразуването на по-ниския тип данни (цяло число) в по-високия тип данни (float), за да се избегне загуба на данни.
Пример 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))
Когато стартираме горната програма, изходът ще бъде:
тип данни на num_int: тип данни на num_flo: Стойност на num_new: 124.23 тип данни на num_new:
В горната програма,
- Добавяме две променливи num_int и num_flo, като съхраняваме стойността в num_new.
- Ще разгледаме съответно типа данни и на трите обекта.
- В изхода можем да видим, че типът данни num_int е,
integer
докато типът данни num_flo е afloat
. - Също така можем да видим, че num_new има тип
float
данни, защото Python винаги преобразува по-малки типове данни в по-големи типове данни, за да избегне загубата на данни.
Сега, нека опитаме да добавим низ и цяло число и да видим как Python се справя с него.
Пример 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)
Когато стартираме горната програма, изходът ще бъде:
Тип данни на num_int: Тип данни на num_str: Проследяване (последно последно повикване): Файл „python“, ред 7, в TypeError: неподдържан тип (операнди) за +: 'int' и 'str'
В горната програма,
- Добавяме две променливи num_int и num_str.
- Както можем да видим от резултата, имаме
TypeError
. Python не може да използва имплицитна конверсия при такива условия. - Въпреки това, Python има решение за този тип ситуации, което е известно като Изрично преобразуване.
Изрично преобразуване на типове
В Изрично преобразуване на типове потребителите преобразуват типа данни на обект в необходимия тип данни. Ние използваме най-предварително дефинирани функции като int()
, float()
, str()
, и т.н., за да изпълнява явно тип реализация.
Този тип преобразуване се нарича още typecasting, защото потребителят предава (променя) типа данни на обектите.
Синтаксис :
(израз)
Типирането може да се извърши чрез присвояване на необходимата функция на типа данни към израза.
Пример 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))
Когато стартираме горната програма, изходът ще бъде:
Тип на данните num_int: Тип на данните num_str преди леене на тип: Тип данни на num_str след леене на тип: Сума от num_int и num_str: 579 Тип данни на сумата:
В горната програма,
- Добавяме променлива num_str и num_int.
- Преобразувахме num_str от низ (по-висок) в цяло число (по-нисък) тип, използвайки
int()
функция за извършване на добавянето. - След конвертиране на num_str в целочислена стойност, Python е в състояние да добави тези две променливи.
- Получихме стойността num_sum и типа данни да бъдат цяло число.
Основни моменти, които трябва да запомните
- Преобразуване на тип е преобразуването на обект от един тип данни в друг тип данни.
- Преобразуването на неявен тип се извършва автоматично от интерпретатора на Python.
- Python избягва загубата на данни при имплицитно преобразуване на типове.
- Изричното преобразуване на типове се нарича още Casting Type, типовете данни на обектите се преобразуват с помощта на предварително дефинирани функции от потребителя.
- При леенето на типове може да настъпи загуба на данни, докато налагаме обекта към определен тип данни.