Python перевод типов данных

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

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

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

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

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

# Преобразуем целое число в число с плавающей точкой num_int = 123 num_float = 1.23 num_new = num_int + num_float print("Тип данных в num_int:", type(num_int)) print("Тип данных в num_float:", type(num_float)) print("Значение num_new:", num_new) print("Тип данных в num_new:", type(num_new)) 

Тип данных в num_int:
Тип данных в num_float:
Значение num_new: 124.23
Тип данных в num_new:

  • мы сложили две переменные num_int и num_float , сохранили значение в num_new .
  • мы вывели на экран типы данных всех трех объектов соответственно;
  • в выводе мы видим, что тип данных num_int — целое число, а тип данных num_float — вещественное число.
  • кроме того, мы видим, что num_new имеет тип данных с плавающей запятой, потому что Python всегда преобразует меньший по диапазону тип в больший, чтобы избежать потери данных.
Читайте также:  Создание диаграмм на java

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

# Складываем строку и целое число 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: 
Тип данных в num_str:

Traceback (most recent call last):
File "python", line 7, in
TypeError: unsupported operand type(s) for +: 'int' and 'str'
  • мы сложили две переменные num_int и num_str.
  • как видно из вывода, мы получили TypeError — Python не может использовать неявное преобразование в таких случаях.

Однако в Python есть решение для таких ситуаций — это явное приведение.

Явное приведение типов

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

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

Синтаксис

Приведение типов можно выполнить, если присвоить выражению значение функции, соответствующее нужному типу данных.

# Складываем строку и целое число с помощью явного преобразования 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("Тип данных полученной суммы:", type(num_sum)) 

Тип данных в num_int:
Тип данных в num_str до явного приведения:

Тип данных в num_str после явного приведения:

Сумма num_int и num_str: 579
Тип данных полученной суммы:

  • мы сложили переменные num_str и num_int ;
  • для выполнения сложения мы преобразовали num_str из строкового типа в целочисленный, используя функцию int () ;
  • после преобразования num_str в целочисленное значение Python уже может сложить эти две переменные;
  • мы получили значение num_sum , его тип данных — целое число.

Что надо запомнить:

  • Преобразование типов — это преобразование объекта из одного типа данных в другой.
  • Неявное преобразование типов автоматически выполняется интерпретатором Python.
  • Python не допускает потери данных при неявном преобразовании типов.
  • Явное преобразование типов также называется приведением типов. Типы данных преобразуются пользователем с помощью встроенных функций.
  • В явном приведении типов может произойти потеря данных, поскольку мы принудительно приводим объект к определенному типу.

СodeСhick.io — простой и эффективный способ изучения программирования.

2023 © ООО «Алгоритмы и практика»

Источник

4. Конвертация типов данных

Функция type() возвращает тип объекта. Ее назначение очевидно, и на примерах можно понять, зачем эта функция нужна.

Также в этом материале рассмотрим другие функции, которые могут помочь в процессе конвертации типа данных. Некоторые из них — это int() , float() или str() .

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

Где используется

  • Функция type() используется для определения типа переменной.
  • Это очень важная информация, которая часто нужна программистам.
  • Например, программа может собирать данные, и будет необходимость знать тип этих данных.
  • Часто требуется выполнять определенные операции с конкретными типами данных: например, арифметические вычисления на целых или числах с плавающей точкой или поиск символа в строках.
  • Иногда будут условные ситуации, где с данными нужно будет обращаться определенным образом в зависимости от их типа.
  • Будет и много других ситуаций, где пригодится функция type() .

Рекомендации по работе с типами данных

  1. Типы int и float можно конвертировать в str , потому что строка может включать не только символы алфавита, но и цифры.
  2. Значения типа str всегда представлены в кавычках, а для int , float и bool они не используются.
  3. Строку, включающую символы алфавита, не выйдет конвертировать в целое или число с плавающей точкой.

Примеры конвертации типов данных

 
>>> game_count = 21
>>> print(type(game_count))

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

 
>>> person1_weight = 121.25
>>> print(type(person1_weight))

Функция int()

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

В следующем примере можно увидеть, как на первой строке переменной inc_count присваивается значение в кавычках.

Из-за этих кавычек переменная регистрирует данные как строку. Дальше следуют команды print для вывода оригинального типа и значения переменной, а затем — использование функции int() для конвертации переменной к типу int .

После этого две функции print показывают, что значение переменной не поменялось, но тип данных — изменился.

Можно обратить внимание на то, что после конвертации выведенные данные не отличаются от тех, что были изначально. Так что без использования type() вряд ли удастся увидеть разницу.

 
>>> inc_count = "2256"
>>> print(type(inc_count))
>>> print(inc_count)
>>> inc_count = int(inc_count)
>>> print(type(inc_count))
>>> print(inc_count)

2256

2256

Функция float()

Функция float() используется для конвертации данных из других типов в тип числа с плавающей точкой.

 
>>> inc_count = "2256"
>>> print(type(inc_count))
>>> print(inc_count)
>>> inc_count = float(inc_count)
>>> print(type(inc_count))
>>> print(inc_count)

2256

2256.0

Функция str()

Как и int() с float() функция str() помогает конвертировать данные в строку из любого другого типа.

 
>>> inc_count = 2256
>>> print(type(inc_count))
>>> print(inc_count)
>>> inc_count = str(inc_count)
>>> print(type(inc_count))
>>> print(inc_count)

2256

2256
  1. Не любой тип можно конвертировать в любой другой. Например, если строка состоит только из символов алфавита, то при попытке использовать с ней int() приведет к ошибке.
  2. Зато почти любой символ или число можно привести к строке. Это будет эквивалентно вводу цифр в кавычках, поскольку именно так создаются строки в Python.

Как можно увидеть в следующем примере, поскольку переменная состоит из символов алфавита, Python не удается выполнить функцию int() , и он возвращает ошибку.

 
>>> my_data = "Что-нибудь"
>>> my_data = int(my_data)
ValueError: invalid literal for int() with base 10: 'Что-нибудь'

Задачи к уроку

Попробуйте решить задачи к этому уроку для закрепления знаний.

1. Измените и дополните код, что бы переменная salary_type хранила результат функции type() со значением int .

# данный код salary = "50000" salary_type = print(salary_type) # требуемый вывод: #

2. Исправьте ошибку в коде, что бы получить требуемый вывод.

# данный код mark = int("5+") print(mark, "баллов") # требуемый вывод: # 5+ баллов

3. Конвертируйте переменные и введите только целые числа через дефис.

# данный код score1 = 50.5648 score2 = 23.5501 score3 = 96.560 print() # требуемый вывод: # 50-23-96

Тест по конвертации типов данных

Пройдите тест к этому уроку для проверки знаний. В тесте 5 вопросов, количество попыток неограниченно.

Источник

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

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

int #

int преобразует строку в int:

С помощью функции int можно преобразовать и число в двоичной записи в десятичную (двоичная запись должна быть в виде строки)

In [2]: int("11111111", 2) Out[2]: 255 

bin #

Преобразовать десятичное число в двоичный формат можно с помощью bin :

In [3]: bin(10) Out[3]: '0b1010' In [4]: bin(255) Out[4]: '0b11111111' 

hex #

Аналогичная функция есть и для преобразования в шестнадцатеричный формат:

In [5]: hex(10) Out[5]: '0xa' In [6]: hex(255) Out[6]: '0xff' 

list #

Функция list преобразует аргумент в список:

In [7]: list("string") Out[7]: ['s', 't', 'r', 'i', 'n', 'g'] In [8]: list(1, 2, 3>) Out[8]: [1, 2, 3] In [9]: list((1, 2, 3, 4)) Out[9]: [1, 2, 3, 4] 

set #

Функция set преобразует аргумент в множество:

In [10]: set([1, 2, 3, 3, 4, 4, 4, 4]) Out[10]: 1, 2, 3, 4> In [11]: set((1, 2, 3, 3, 4, 4, 4, 4)) Out[11]: 1, 2, 3, 4> In [12]: set("string string") Out[12]: ' ', 'g', 'i', 'n', 'r', 's', 't'> 

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

tuple #

Функция tuple преобразует аргумент в кортеж:

In [13]: tuple([1, 2, 3, 4]) Out[13]: (1, 2, 3, 4) In [14]: tuple(1, 2, 3, 4>) Out[14]: (1, 2, 3, 4) In [15]: tuple("string") Out[15]: ('s', 't', 'r', 'i', 'n', 'g') 

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

str #

Функция str преобразует аргумент в строку:

Источник

Оцените статью