The Python Programming Guide

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

При работе с данными используется самые различные типы. Но чтобы провести операцию над двумя разными типами, надо преобразовать одно из них в другое.

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

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

a = 4 + "6"
print(type(a))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

В данном примере мы пытаемся сложить два операнда тип int и str, но получаем ошибку в итоге. Для правильного результата надо преобразовать "6" с помощью встроенной int() в целое число.

Явные преобразования

Явные преобразования необходимы, когда Python автоматически не приводит один тип к другому. Например:

a = 4 + 6.5
print(type(a))
<class 'float'>

Заметка

Python имеет следующие встроенные функции для преобразования типов:

  • str(): преобразует значение в строку;
  • int(): преобразует значение в целое число;
  • float(): преобразует значение в число с плавающей запятой;
  • complex(): преобразует значение в комплексное число;
  • bool(): преобразует значение в булево значение;
  • list(): преобразует итерируемый объект в список;
  • tuple(): преобразует итерируемый объект в кортеж;
  • set(), frozenset(): преобразует итерируемый объект в изменяемое/неизменяемое множество;
  • bytes(), bytearray(): преобразует значение к бинарному типу/массиву.

Примеры

bool

Для приведения других типов данных к булеву используется функция bool(), работающая по следующим соглашениям:

Булев тип приводится к следующим типам данных: