- 4. Конвертация типов данных
- Где используется
- Рекомендации по работе с типами данных
- Примеры конвертации типов данных
- Функция int()
- Функция float()
- Функция str()
- Задачи к уроку
- Тест по конвертации типов данных
- Convert type to string python
- # Table of Contents
- # Convert an Object to a String in Python
- # Convert a Class object to a String in Python
- # Make sure to return a String from the __str__() method
- # Converting a Class instance to a JSON string
- # Convert a Class object to a String using __repr__()
- # The difference between __str__() and __repr__()
- # Additional Resources
4. Конвертация типов данных
Функция type() возвращает тип объекта. Ее назначение очевидно, и на примерах можно понять, зачем эта функция нужна.
Также в этом материале рассмотрим другие функции, которые могут помочь в процессе конвертации типа данных. Некоторые из них — это int() , float() или str() .
type() — это базовая функция, которая помогает узнать тип переменной. Получившееся значение можно будет выводить точно так же, как обычные значения переменных с помощью print .
Где используется
- Функция type() используется для определения типа переменной.
- Это очень важная информация, которая часто нужна программистам.
- Например, программа может собирать данные, и будет необходимость знать тип этих данных.
- Часто требуется выполнять определенные операции с конкретными типами данных: например, арифметические вычисления на целых или числах с плавающей точкой или поиск символа в строках.
- Иногда будут условные ситуации, где с данными нужно будет обращаться определенным образом в зависимости от их типа.
- Будет и много других ситуаций, где пригодится функция type() .
Рекомендации по работе с типами данных
- Типы int и float можно конвертировать в str , потому что строка может включать не только символы алфавита, но и цифры.
- Значения типа str всегда представлены в кавычках, а для int , float и bool они не используются.
- Строку, включающую символы алфавита, не выйдет конвертировать в целое или число с плавающей точкой.
Примеры конвертации типов данных
>>> 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
- Не любой тип можно конвертировать в любой другой. Например, если строка состоит только из символов алфавита, то при попытке использовать с ней int() приведет к ошибке.
- Зато почти любой символ или число можно привести к строке. Это будет эквивалентно вводу цифр в кавычках, поскольку именно так создаются строки в 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# 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.