Процесс преобразования одного типа данных 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 из одного типа данных в другой.