Функция type()
возвращает тип объекта. Ее назначение очевидно, и на примерах можно понять, зачем эта функция нужна.
Также в этом материале рассмотрим другие функции, которые могут помочь в процессе конвертации типа данных. Некоторые из них — это int()
, float()
или str()
.
type()
— это базовая функция, которая помогает узнать тип переменной. Получившееся значение можно будет выводить точно так же, как обычные значения переменных с помощью print
.
Где используется
- Функция
type()
используется для определения типа переменной. - Это очень важная информация, которая часто нужна программистам.
- Например, программа может собирать данные, и будет необходимость знать тип этих данных.
- Часто требуется выполнять определенные операции с конкретными типами данных: например, арифметические вычисления на целых или числах с плавающей точкой или поиск символа в строках.
- Иногда будут условные ситуации, где с данными нужно будет обращаться определенным образом в зависимости от их типа.
- Будет и много других ситуаций, где пригодится функция
type()
.
Рекомендации по работе с типами данных
- Типы
int
иfloat
можно конвертировать вstr
, потому что строка может включать не только символы алфавита, но и цифры. - Значения типа
str
всегда представлены в кавычках, а дляint
,float
иbool
они не используются. - Строку, включающую символы алфавита, не выйдет конвертировать в целое или число с плавающей точкой.
Примеры конвертации типов данных
>>> game_count = 21
>>> print(type(game_count))
<class 'int'>
В следующих материалах речь пойдет о более сложных типах данных, таких как списки, кортежи и словари. Их обычно называют составными типами данных, потому что они могут состоять из значений разных типов. Функция type()
может использоваться для определения их типов также.
>>> person1_weight = 121.25
>>> print(type(person1_weight))
<class 'float'>
Функция 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)
<class 'str'>
2256
<class 'int'>
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)
<class 'str'>
2256
<class 'float'>
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)
<class 'int'>
2256
<class 'str'>
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)
# требуемый вывод:
# <class 'int'>
2. Исправьте ошибку в коде, что бы получить требуемый вывод.
# данный код
mark = int("5+")
print(mark, "баллов")
# требуемый вывод:
# 5+ баллов
3. Конвертируйте переменные и введите только целые числа через дефис.
# данный код
score1 = 50.5648
score2 = 23.5501
score3 = 96.560
print()
# требуемый вывод:
# 50-23-96
Файл со всем заданиями: https://gitlab.com/PythonRu/python-dlya-nachinayushih/-/blob/master/lesson_4.py.
Тест по конвертации типов данных
Пройдите тест к этому уроку для проверки знаний. В тесте 5 вопросов, количество попыток неограниченно.
Если нашли ошибку, опечатку или знаете как улучшить этот урок, пишите на почту. Ее можно найти внизу сайта.