English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Python

Контроль потока Python

Функции Python

Типы данных Python

Операции с файлами Python

Объекты и классы Python

Даты и время Python

Продвинутые знания Python

Руководство по Python

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

Прежде чем изучать преобразование типов в Python, вы должны понять  Типы данных Python.

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

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

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

  2. Явная типовая конверсия

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

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

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

Пример 1: Преобразование целого числа в浮点ное

num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("Тип данных num_int:",type(num_int))
print(“тип данных num_flo:”,type(num_flo))
print(“num_new的价值:”,num_new)
print(“num_new的数据类型:”,type(num_new))

Когда мы запускаем上面的 программу, вывод будет следующим:

Тип данных num_int: <class 'int'>
тип данных num_flo: <class 'float'>
значение num_new: 124.23
тип данных num_new: <class 'float'>

В上面的 программе

  • Мы сложим два переменныхnum_intиnum_flo сложитьи хранить значения в переменнойв num_new.

  • мы рассмотрим тип данных всех трех объектов.

  • В выводе мы можем увидетьnum_intтип данных — integer,num_floтип данных — float.

  • Кроме того, мы можем увидетьnum_newс типом данных float, потому что Python всегда преобразует более мелкий тип данных в более крупный тип данных, чтобы избежать потери данных.

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

Пример 2: сложение строки (высокого) типа данных и целого (низкого) типа данных

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 (последний вызов в начале): 
  File “python”, line 7, in <module> 
TypeError: не поддерживаемые типы операнда для +: 'int' и 'str'

В上面的 программе

  • у нас два переменныхnum_int иnum_strсуммировать.

  • Из вывода можно увидеть, что у нас появился TypeError. В этом случае Python не может использовать неявную конверсию.

  • Но Python предоставляет решение для таких случаев, называемое “Явная конверсия“”

Явная типовая конверсия

В “Явная типовая конверсия”в котором пользователь преобразует тип данных объекта в требуемый тип данных. Мы используем такие предопределенные функции, как int(), float(), str() и т.д., для явной типовой конверсии.

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

Грамматика :

<required_datatype>(expression)

Типовая конверсия можно выполнить, присвоив функцию типа данных, необходимого для выражения.

Пример 3: Использование явного преобразования для сложения строки и целого числа

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("Тип данных sum:",type(num_sum))

Когда мы запускаем上面的 программу, вывод будет следующим:

Тип данных num_int: <class 'int'>
Тип данных num_str до преобразования: <class 'str'>
Тип данных num_str после преобразования: <class 'int'>
Сумма num_int и num_str: 579
тип данных sum: <class 'int'>

В上面的 программе

  • Мыnum_strиnum_intсложение переменных.

  • Мы используем функцию int() дляnum_strИз типа string (высокий) в тип integer (низкий) для выполнения сложения.

  • Преобразоватьnum_strПосле преобразования в целое число Python может выполнять сложение этих двух переменных.

  • В конце концов, мы получаемnum_sumЗначение и и того же значения тип данных - целое число.

Чтобы запомнить

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

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

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

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

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