Мастерство преобразования типов в Python: Полное руководство
Преобразование типов и приведение типов в Python
В этой статье вы узнаете о преобразовании типов и его применении.
Перед изучением преобразования типов в Python нужно знать о типах данных Python.
Преобразование типов
Процесс преобразования значения одного типа данных (целое число, строка, float и т.д.) в другой тип данных называется преобразованием типов. В Python есть два типа преобразования типов.
- Неявное преобразование типов
- Явное преобразование типов
Неявное преобразование типов
При неявном преобразовании типов Python автоматически преобразует один тип данных в другой. Этот процесс не требует участия пользователя.
Рассмотрим пример, где Python повышает тип нижнего уровня (целое число) к типу высшего уровня (float) для предотвращения потери данных.
Пример 1: Преобразование целого числа в float
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))
При запуске программа выдаст:
datatype of num_int: <class 'int'> datatype of num_flo: <class 'float'> Value of num_new: 124.23 datatype of num_new: <class 'float'>
В программе выше:
- Складываем две переменные num_int и num_flo, результат в num_new.
- Проверяем типы данных всех трёх объектов.
- Видим, что num_int —
int, а num_flo —float. - 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)
Результат:
Data type of num_int: <class 'int'> Data type of 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() и др.
Этот тип преобразования также называют приведением типов (type casting), потому что пользователь «приводит» (меняет) тип данных объектов.
Синтаксис:
<required_datatype>(expression)
Приведение типов выполняется присвоением функции требуемого типа выражению.
Пример 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))
Результат:
Data type of num_int: <class 'int'> Data type of num_str before Type Casting: <class 'str'> Data type of num_str after Type Casting: <class 'int'> Sum of num_int and num_str: 579 Data type of the sum: <class 'int'>
В программе выше:
- Складываем num_str и num_int.
- Преобразуем num_str из строки (высший тип) в целое число (нижний тип) функцией
int()для выполнения сложения. - После преобразования Python может сложить эти переменные.
- Получили значение num_sum и тип данных — целое число.
Ключевые моменты
- Преобразование типов — конвертация объекта из одного типа данных в другой.
- Неявное преобразование типов выполняется автоматически интерпретатором Python.
- Python избегает потери данных при неявном преобразовании типов.
- Явное преобразование типов также называется приведением типов; типы данных объектов преобразуются пользователем с помощью встроенных функций.
- При приведении типов может происходить потеря данных, так как мы принудительно приводим объект к конкретному типу.
Python
- Освоение преобразования типов в C#: неявное, явное, Parse и Convert
- Ключевые слова и идентификаторы в Python: мастерство зарезервированных слов и соглашений об именовании
- Операторы, отступы и комментарии в Python: понятное руководство
- Переменные, константы и литералы в Python — подробное руководство
- Освоение типов данных в Python: практическое руководство
- Мастерство ввода-вывода и импорта модулей в Python: Практическое руководство
- Глобальные, локальные и nonlocal переменные в Python: понимание и применение
- Числа, преобразование типов и математика в Python: полное руководство
- Управление директориями и файлами в Python: полное руководство
- Ошибки и встроенные исключения в Python: полное руководство