Как узнать тип переменной Python

Содержание
Введение
Разница между type() и isinstance()
type()
Пример использования type()
isinstance()
Пример использования isinstance()
В других языках

Введение

В Python есть две функции type() и isinstance() с помощью которых можно проверить к какому типу данных относится переменная.

Разница между type() и isinstance()

type() возвращает тип объекта

isinstance() возвращает boolean значение - принадлежит объект данному типу или нет

type()

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

print(type(variable))

Пример использования type()

В Python четырнадцать типов данных.

Для начала рассмотрим три численных типа (Numeric Types):

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

var_int = 1380 var_float = 3.14 var_complex = 2.0-3.0j print(type(var_int)) print(type(var_float)) print(type(var_complex))

<class 'int'> <class 'float'> <class 'complex'>

Рассмотрим ещё несколько примеров

# Text Type: var_str = 'heihei.ru' # Boolean Type: var_bool = True # Sequence Types: var_list = ['heihei.ru','topbicycle.ru','urn.su'] var_tuple = ('andreyolegovich.ru', 'aredel.com') var_range = range(0,9) print(type(var_str)) print(type(var_bool)) print(type(var_list)) print(type(var_tuple)) print(type(var_range))

<class 'str'> <class 'bool'> <class 'list'> <class 'tuple'> <class 'range'>

Спецификацию функции type() вы можете прочитать на сайте docs.python.org

Команда type

Есть ещё полезная команда type которая решает другую задачу.

С помощью команды type можно, например, определить куда установлен Python.

Подробнее об этом можете прочитать здесь

type python3

python3 is hashed (/usr/bin/python3)

type python

python3 is hashed (/usr/bin/python)

isinstance()

Кроме type() в Python есть функция isinstance(), с помощью которой можно проверить не относится ли переменная к какому-то определённому типу.

Иногда это очень удобно, а если нужно - всегда можно на основе isinstance() написать свою функцию.

Пример использования

Из isinstance() можно сделать аналог type()

Упростим задачу рассмотрев только пять типов данных, создадим пять переменных разного типа и проверим работу функции

var_int = 1380 var_str = 'heihei.ru' var_bool = True var_list = ['heihei.ru','topbicycle.ru','urn.su'] var_tuple = ('andreyolegovich.ru', 'aredel.com') if (isinstance(var_int, int)): print(f"{var_int} is int") else: print(f"{var_int} is not int") if (isinstance(var_str, str)): print(f"{var_str} is str") else: print(f"{var_str} is not str") if (isinstance(var_bool, bool)): print(f"{var_bool} is bool") else: print(f"{var_bool} is not bool") if (isinstance(var_list, list)): print(f"{var_list} is list") else: print(f"{var_list} is not list") if (isinstance(var_tuple, tuple)): print(f"{var_tuple} is tuple") else: print(f"{var_tuple} is not tuple")

Результат

1380 is int heihei.ru is str True is bool ['heihei.ru', 'topbicycle.ru', 'urn.su'] is list ('andreyolegovich.ru', 'aredel.com') is tuple

Напишем свою фукнцию по определению типа typeof() на базе isinstance

def typeof(your_var): if (isinstance(your_var, int)): return 'int' elif (isinstance(your_var, bool)): return 'bool' elif (isinstance(your_var, str)): return 'str' elif (isinstance(your_var, list)): return 'list' elif (isinstance(your_var, tuple)): return 'tuple' else: print("type is unknown")

Протестируем нашу функцию

print(f"var_list is {typeof(var_list)}")

var_list is list

В других языках

Похожие статьи
Python
Интерактивный режим
str: строки
\: перенос строки
Списки []
if, elif, else
Циклы
Методы
Функции
*args **kwargs
enum
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Файлы: записать, прочитать, дописать, контекстный менеджер…
Скачать файл по сети
SQLite3: работа с БД
datetime: Дата и время в Python
json.dumps
Selenium + Python
Сложности при работе с Python
DJANGO
Flask
Скрипт для ZPL принтера
socket :Python Sockets
Виртуальное окружение
subprocess: выполнение bash команд из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
enumerate
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: