Преобразование типов в Python
В программировании преобразование типов — это процесс преобразования данных одного типа в другой. Например: преобразование данных int в str.
В Python существует два типа преобразования типов.
Неявное преобразование — автоматическое преобразование типов
Явное преобразование — ручное преобразование типов
Неявное преобразование типов в Python
В определённых ситуациях Python автоматически преобразует один тип данных в другой. Это называется неявным преобразованием типов.
Пример 1: Преобразование целого числа в float
Рассмотрим пример, где Python осуществляет преобразование меньшего типа данных (целое число) в больший тип данных (float), чтобы избежать потери данных.
integer_number = 123
float_number = 1.23
new_number = integer_number + float_number
# вывести новое значение и результирующий тип данных
print("Value:",new_number)
print("Data Type:",type(new_number))
Вывод
Value: 124.23
Data Type: <class 'float'>
В приведённом выше примере мы создали две переменные: integer_number и float_number типа int и float соответственно.
Затем мы сложили эти две переменные и сохранили результат в new_number.
Как мы видим, new_number имеет значение 124.23 и относится к типу данных float.
Это происходит потому, что Python всегда преобразует меньшие типы данных в большие, чтобы избежать потери данных.
Примечание
Мы получим
TypeError, если попытаемся сложитьstrиint. Например,'12' + 23. Python не может использовать неявное преобразование в таких условиях.У Python есть решение для таких ситуаций, которое известно как явное преобразование.
Явное преобразование типов
При явном преобразовании типов пользователи преобразуют тип данных объекта в требуемый тип данных.
Мы используем встроенные функции, такие как int(), float(), str() и т. д., для выполнения явного преобразования типов.
Этот тип преобразования также называется приведением типов (typecasting), поскольку пользователь приводит (изменяет) тип данных объектов.
Пример 2: Сложение строки и целого числа с помощью явного преобразования
num_string = '12'
num_integer = 23
print("Data type of num_string before Type Casting:",type(num_string))
# явное преобразование типов
num_string = int(num_string)
print("Data type of num_string after Type Casting:",type(num_string))
num_sum = num_integer + num_string
print("Sum:",num_sum)
print("Data type of num_sum:",type(num_sum))
Вывод
Data type of num_string before Type Casting: <class 'str'>
Data type of num_string after Type Casting: <class 'int'>
Sum: 35
Data type of num_sum: <class 'int'>
В приведённом выше примере мы создали две переменные: num_string и num_integer со значениями типа str и int соответственно. Обратите внимание на код,
num_string = int(num_string)
Здесь мы использовали int() для выполнения явного преобразования num_string в целочисленный тип.
После преобразования num_string в целое число Python смог сложить эти две переменные.
В итоге мы получили значение num_sum, то есть 35, и тип данных int.
Ключевые моменты для запоминания
Преобразование типов — это преобразование объекта из одного типа данных в другой тип данных.
Неявное преобразование типов выполняется автоматически интерпретатором Python.
Python избегает потери данных при неявном преобразовании типов.
Явное преобразование типов также называется приведением типов; типы данных объектов преобразуются с использованием предопределённых функций пользователем.
При приведении типов может произойти потеря данных, поскольку мы принудительно приводим объект к определённому типу данных.
Также читайте: