Приведение типов в Python: простое преобразование типов данных

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

Как выполнить приведение типов в Python?

Python предоставляет четыре встроенные функции, которые можно использовать для приведения типов. Вот эти функции:

  • str()
  • int()
  • float()
  • bool()

Каждая из этих функций, примененная к значению, возвращает значение, преобразованное в другой тип данных, соответственно строку, целое число, число с плавающей точкой или логическое значение.

Важным аспектом является то, что не все значения могут быть приведены ко всем типам данных. Например, если вы попытаетесь преобразовать строку, которая не представляет число, в int или float, вы увидите ValueError.

Вот ошибка ValueError, возникающая при интерпретаторе Python, если вы пытаетесь преобразовать недопустимую числовую строку в целое число.

>>> incorrect_number = '34%'
>>> int(incorrect_number)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '34%'

А вот ошибка, которая возникает при попытке преобразовать некорректную числовую строку в число с плавающей точкой.

>>> float(incorrect_number)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: '34%'

Как преобразовать int в строку в Python

Чтобы преобразовать целое число в строку, можно использовать функцию Python str(). Если x — это int, который вы хотите преобразовать, то используйте str(x), чтобы получить его в строковом формате.

Давайте посмотрим на практике. Откройте оболочку Python и присвойте числовое значение переменной x.

>>> x = 1

Затем применим функцию str() к x:

>>> str(x)
'1'

Используя встроенную функцию type(), вы можете проверить, что тип, возвращаемый функцией str(), является строкой.

>>> type(str(x))
<class 'str'>

Если вы хотите использовать это значение как часть математической операции, вам придется преобразовать его обратно в целое число или число с плавающей точкой. Если вы этого не сделаете, вы получите следующую ошибку TypeError:

>>> str(x)+10
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

Как объясняется в ошибке, можно объединить строку только с другой строкой (не с целым числом).

Следующее выражение даст вам правильный результат:

>>> int(str(x))+10
11

Как преобразовать целое число в число с плавающей точкой с помощью Python?

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

Присвойте значение целому числу x, а затем используйте функцию float(), чтобы преобразовать его в число с плавающей точкой.

>>> x = 1

Вызовите функцию float() и передайте ей x:

>>> float(x)
1.0

Используя встроенную функцию type(), проверьте, что тип, возвращаемый функцией float(), является числом с плавающей точкой.

>>> type(float(x))
<class 'float'>

Как использовать Python для приведения типа float к int

Для преобразования числа с плавающей точкой в ​​целое число в Python предусмотрена встроенная функция int().

Присвойте переменной y значение с плавающей точкой:

>>> y = 3.14

Как преобразовать это число с плавающей точкой в ​​целое число?

Вызовите функцию int() и передайте ей число с плавающей точкой.

>>> int(y)
3

Как вы видите, вывод, возвращаемый функцией int(), является целым числом. Он не содержит цифр после десятичной точки.

Преобразование из числа с плавающей точкой в ​​строку с использованием Python

Для преобразования числа с плавающей точкой в ​​строку в Python предусмотрена встроенная функция str().

Создайте переменную с плавающей точкой:

>>> z = 24.567

Как преобразовать это число с плавающей точкой в ​​строку?

Вызовите функцию str() и передайте ей число с плавающей точкой.

>>> str(z)
'24.567'

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

>>> float(str(z))+34.44
59.007

Как преобразовать строку в целое число с помощью Python

Для преобразования строки в целое число Python предоставляет функцию int(). Если x — это строка, которую вы хотите преобразовать, то используйте int(x), чтобы преобразовать ее в целое число.

Откройте оболочку Python и создайте строку:

>>> number = '45'

Затем вызовите функцию int() и передайте ей номер строковой переменной.

>>> int(number)
45

Проверьте, что тип, возвращаемый функцией int(), является целым числом, используя встроенную функцию type().

>>> type(int(number))
<class 'int'>

Использование Python для преобразования строки в число с плавающей точкой

Для преобразования строки в число с плавающей точкой в ​​Python используйте функцию float(). Функция float() принимает строку в качестве аргумента и возвращает ее представление в виде числа с плавающей точкой.

Давайте создадим строку, представляющую число с плавающей точкой:

>>> number = '78.3'

Затем вызовите функцию float() и передайте ей строковую переменную.

>>> float(number)
78.3

Убедитесь, что Python преобразует строку в число с плавающей точкой:

>>> type(float(number))
<class 'float'>

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

Функцию str() можно использовать для преобразования списка Python в его строковое представление.

Создайте список чисел:

>>> numbers = [1, 2, 3, 4, 5]

И передайте этот список в качестве аргумента функции str():

>>> str(numbers)
'[1, 2, 3, 4, 5]'
>>> type(str(numbers))
<class 'str'>

Заключение

В этом уроке мы увидели, как работает приведение типов в Python.

Теперь вы знаете, как преобразовать int, float, string и boolean из одного типа данных в другой.

Автор

Фото аватара

Владимир Михайлов

Программист на Python с большим количеством опыта и разнообразных проектов.