Convert type to string python

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

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

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

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

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

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

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

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

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

 
>>> 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 вопросов, количество попыток неограниченно.

Источник

Convert type to string python

Last updated: Feb 21, 2023
Reading time · 3 min

banner

# Table of Contents

# Convert an Object to a String in Python

Use the str() class to convert an object to a string.

The str() class returns the string version of the given object.

Copied!
my_int = 42 # ✅ Convert an object to a string result = str(my_int) print(result) # 👉️ '42' print(type(result)) # 👉️ print(isinstance(result, str)) # 👉️ True

The first example uses the str() class to convert an object to a string.

The str class takes an object and returns the string version of the object.

Copied!
my_obj = 3.14 result = str(my_obj) print(result) # 👉️ '3.14' print(type(result)) # 👉️

If you need to convert a class object to a string, implement the _ _ str _ _ () method.

# Convert a Class object to a String in Python

Use the __str__() method to convert an object to a string.

The __str__() method is called by str(object) and the built-in format() and print() functions and returns the informal string representation of the object.

Copied!
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary def __str__(self): return f'Name: self.name>' bobby = Employee('bobbyhadz', 100) print(bobby) # 👉️ Name: bobbyhadz

We defined the __str__() method on the class to convert it to a string.

The __str__ method is called by str(object) and the built-in format() and print() functions and returns the informal string representation of the object.

# Make sure to return a String from the __str__() method

Make sure to return a string from the __str__() method, otherwise a TypeError is raised.

For example, if we want to return the employee's salary from the __str__() method, we have to use the str() class to convert the value to a string.

Copied!
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary def __str__(self): return str(self.salary) bobby = Employee('bobbyhadz', 100) print(bobby) # 👉️ 100

The __str__() method is called if you use the object in a formatted string literal or with the str.format() method.

Copied!
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary def __str__(self): return str(self.salary) bobby = Employee('bobbyhadz', 100) result = f'Current salary: bobby>' print(result) # 👉️ Current salary: 100

The __str__() method should return a string that is a human-readable representation of the object.

# Converting a Class instance to a JSON string

If you need to convert a class instance to a JSON string, use the __dict__ attribute on the instance.

Copied!
import json class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary def __str__(self): return str(self.salary) bobby = Employee('bobbyhadz', 100) json_str = json.dumps(bobby.__dict__) print(json_str) # 👉️ ''

We used the __dict__ attribute to get a dictionary of the object's attributes and values and converted the dictionary to JSON.

The json.dumps method converts a Python object to a JSON formatted string.

# Convert a Class object to a String using __repr__()

There is also a __repr__() method that can be used in a similar way to the __str__() method.

Copied!
class Employee(): def __init__(self, name, salary): self.name = name self.salary = salary def __repr__(self): return self.name bobby = Employee('bobbyhadz', 100) print(bobby) # 👉️ 'bobbyhadz'

The _ _ repr _ _ method is called by the repr() function and is usually used to get a string that can be used to rebuild the object using the eval() function.

If the class doesn't have the __str__() method defined, but has __repr__() defined, the output of __repr__() is used instead.

# The difference between __str__() and __repr__()

A good way to illustrate the difference between __str__() and __repr__() is to use the datetime.now() method.

Copied!
import datetime # 👇️ using __str__() print(datetime.datetime.now()) # 👉️ 2022-09-08 14:29:05.719749 # 👇️ using __repr__() # 👉️ datetime.datetime(2022, 9, 8, 14, 29, 5, 719769) print(repr(datetime.datetime.now())) result = eval('datetime.datetime(2023, 2, 21, 13, 51, 26, 827523)') print(result) # 👉️ 2023-02-21 13:51:26.827523

When we used the print() function, the __str__() method in the datetime class got called and returned a human-readable representation of the date and time.

When we used the repr() function, the __repr__() method of the class got called and returned a string that can be used to recreate the same state of the object.

We passed the string to the eval() function and created a datetime object with the same state.

Note that implementing the __repr__() method in this way is not always necessary or possible.

Having the __str__() method return a human-readable string is sufficient most of the time.

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.

Источник

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