Преобразование типов в 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.


Ключевые моменты для запоминания

  1. Преобразование типов — это преобразование объекта из одного типа данных в другой тип данных.

  2. Неявное преобразование типов выполняется автоматически интерпретатором Python.

  3. Python избегает потери данных при неявном преобразовании типов.

  4. Явное преобразование типов также называется приведением типов; типы данных объектов преобразуются с использованием предопределённых функций пользователем.

  5. При приведении типов может произойти потеря данных, поскольку мы принудительно приводим объект к определённому типу данных.


Также читайте: