Преобразование и приведение типов в Python

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2022-06-27 20:20

разработка по

Преобразование типов

Процесс преобразования значения одного типа данных (целые числа, строки, числа с плавающей точкой и т. д.) в другой называется преобразованием типа. В Python есть два вида преобразования:

  1. Неявное преобразование типов.
  2. Явное приведение типов.

Неявное преобразование типов

При неявном преобразовании типов Python автоматически преобразует один тип данных в другой. Этот процесс не требует участия пользователя.

Давайте рассмотрим пример, в котором Python, чтобы избежать потери данных, производит преобразование типа данных с низким диапазоном (целое число) в тип с более высоким диапазоном (число с плавающей запятой).

# Преобразуем целое число в число с плавающей точкой num_int = 123 num_float = 1.23  num_new = num_int + num_float  print("Тип данных в num_int:", type(num_int)) print("Тип данных в num_float:", type(num_float))  print("Значение num_new:", num_new) print("Тип данных в num_new:", type(num_new)) 

Вывод:

Тип данных в num_int: <class 'int'>
Тип данных в num_float: <class 'float'>
Значение num_new: 124.23
Тип данных в num_new: <class 'float'>

В программе выше:

  • мы сложили две переменные num_int и num_float, сохранили значение в num_new.
  • мы вывели на экран типы данных всех трех объектов соответственно;
  • в выводе мы видим, что тип данных num_int — целое число, а тип данных num_float — вещественное число.
  • кроме того, мы видим, что num_new имеет тип данных с плавающей запятой, потому что Python всегда преобразует меньший по диапазону тип в больший, чтобы избежать потери данных.

Теперь давайте попробуем сложить строку и целое число и посмотрим, как Python с этим справится.

# Складываем строку и целое число num_int = 123 num_str = "456"  print("Тип данных в num_int:", type(num_int)) print("Тип данных в num_str:", type(num_str))  print(num_int + num_str) 

Вывод:

Тип данных в num_int: <class 'int'> 
Тип данных в num_str: <class 'str'>

Traceback (most recent call last):
File "python", line 7, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

В программе выше:

  • мы сложили две переменные num_int и num_str.
  • как видно из вывода, мы получили TypeError — Python не может использовать неявное преобразование в таких случаях.

Однако в Python есть решение для таких ситуаций — это явное приведение.

Явное приведение типов

В явном преобразовании программист сам заменяет текущий тип данных объекта на требуемый. Для этого используются встроенные функции, такие как int (), float (), str () и т. д., чтобы выполнить явное преобразование типов.

Этот тип преобразования также называется приведением типов, поскольку пользователь приводит (изменяет) тип данных объекта.

Синтаксис

<требуемый_тип_данных>(выражение)

Приведение типов можно выполнить, если присвоить выражению значение функции, соответствующее нужному типу данных.

# Складываем строку и целое число с помощью явного преобразования num_int = 123 num_str = "456"  print("Тип данных в num_int:", type(num_int)) print("Тип данных в num_str до явного приведения:", type(num_str))  num_str = int(num_str) print("Тип данных в num_str после явного приведения:", type(num_str))  num_sum = num_int + num_str  print("Сумма num_int и num_str:", num_sum) print("Тип данных полученной суммы:", type(num_sum)) 

Вывод:

Тип данных в num_int: <class 'int'>
Тип данных в num_str до явного приведения: <class 'str'>
Тип данных в num_str после явного приведения: <class 'int'>
Сумма num_int и num_str: 579
Тип данных полученной суммы: <class 'int’>

В программе выше:

  • мы сложили переменные num_str и num_int;
  • для выполнения сложения мы преобразовали num_str из строкового типа в целочисленный, используя функцию int ();
  • после преобразования num_str в целочисленное значение Python уже может сложить эти две переменные;
  • мы получили значение num_sum, его тип данных — целое число.

Что надо запомнить:

  • Преобразование типов — это преобразование объекта из одного типа данных в другой.
  • Неявное преобразование типов автоматически выполняется интерпретатором Python.
  • Python не допускает потери данных при неявном преобразовании типов.
  • Явное преобразование типов также называется приведением типов. Типы данных преобразуются пользователем с помощью встроенных функций.
  • В явном приведении типов может произойти потеря данных, поскольку мы принудительно приводим объект к определенному типу.

Источник: m.vk.com

Комментарии: