Пройдите тест, узнайте какой профессии подходите
Узнайте о различных способах определения типа переменной в Python с помощью функций type(), isinstance() и аннотаций типов, чтобы улучшить ваш код!
Определение типа переменной в Python является важным аспектом при работе с данными, особенно для новичков, которые только начинают изучать этот язык программирования. В этой статье мы рассмотрим основные методы определения типа переменной в Python. 😊
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Использование функции type()
Один из самых простых и распространенных способов определить тип переменной в Python — использовать встроенную функцию type(). Вот как это работает:
x = 5 print(type(x))
Вывод:
<class 'int'>
В этом примере переменная x имеет тип int (целое число).
Использование isinstance()
Еще один способ определения типа переменной — использовать функцию isinstance(). Она проверяет, является ли объект экземпляром указанного класса или кортежа классов. Вот пример:
x = "hello"
if isinstance(x, str):
print("x is a string")
else:
print("x is not a string")
Вывод:
x is a string
Аннотации типов
Начиная с Python 3.5, вы можете использовать аннотации типов для указания ожидаемого типа переменной. Это не влияет на выполнение кода, но может помочь в проверке кода и автодополнении в редакторах кода. Вот пример:
def greet(name: str) -> str:
return "Hello, " + name
x = "world"
print(greet(x))
В этом примере функция greet ожидает, что аргумент name будет типа str и также возвращает строку.
Обратите внимание, что аннотации типов не являются обязательными и не влияют на выполнение кода. Их главная цель — помочь программистам лучше понимать код и предотвратить ошибки.
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Заключение
Теперь вы знаете основные способы определения типа переменной в Python. Используйте функции type() и isinstance() для определения типа переменных, а также аннотации типов для улучшения читаемости кода.
Не забывайте практиковаться и изучать больше о Python, чтобы стать успешным разработчиком! 😃
| Введение | |
| Разница между type() и isinstance() | |
| type() | |
| Пример использования type() | |
| isinstance() | |
| Пример использования isinstance() | |
| Проверка списка или другого iterable | |
| В других языках | |
| Похожие статьи |
Введение
В Python есть две функции
type()
и
isinstance()
с помощью которых можно проверить к какому типу данных относится переменная.
Разница между type() и isinstance()
type() возвращает тип объекта
isinstance() возвращает boolean значение — принадлежит объект данному типу или нет
type()
Встроенная функция type() это самый простой способ выяснить тип объекта. В Python всё является объектом, объекты делятся на
изменяемые и неизменяемые
.
Вы можете воспользоваться type() следующим образом.
print(type(variable))
Пример использования type()
В Python четырнадцать типов данных.
Для начала рассмотрим три численных типа (Numeric Types):
- int (signed integers)
- float (вещественные числа с плавающей точкой)
- complex (комплексные числа)
Создайте три переменные разного численного типа и проверьте работу функции:
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','eth1.ru']
var_tuple = ('testsetup.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() написать свою функцию.
Пример использования
Создадим пять переменных разного типа и проверим работу функции
var_int = 1380
var_str = 'heihei.ru'
var_bool = True
var_list = ['heihei.ru','topbicycle.ru','eth1.ru']
var_tuple = ('eth1.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’, ‘eth1.ru’] is list
(‘eth1.ru’, ‘aredel.com’) is tuple
Из isinstance() можно сделать аналог type()
Напишем свою фукнцию по определению типа 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
Принадлежность к одному из нескольких типов
Если нужно проверить принадлежит ли объект не к какому-то одному, а к группе типов, эти типы можно
перечислить в скобках.
Часто бывает нужно проверить является ли объект числом, то есть подойдёт как
int, так и float
print(isinstance(2.0, (int, float)))
True
Проверим несколько значений из списка
l3 = [1.5, —2, «www.heihei.ru»]
for item in l3:
print(isinstance(item, (int, float)))
True
True
False
Проверка списка или другого iterable
Часто бывает нужно проверить не одну переменную а целый список, множество, кортеж или какой-то другой объект.
Эту задачу можно решить с помощью isinstance() и функций:
-
all()
-
map()
-
и лямбда функций
Проверить все ли элементы списка l1 int
l1 = [1, 2, 3]
if all(map(lambda p: isinstance(p, int), l1)):
print(«all int in l1»)
all int in l1
Проверить несколько списков на int и float
l1 = [3, —4.0, 5.5, —6.2]
l2 = [1, —2, «test»]
def verif_list(l):
return(all(map(lambda p: isinstance(p, (int, float)), l)))
if __name__ == «__main__»:
print(verif_list(l1))
print(verif_list(l2))
True
False
Помимо isinstance() в Python есть функция
issubclass()
с помощью которой проверяется является один класс производным от другого.
В других языках
-
Си: такой функции нет.
-
C++
:
похожую задачу решает функцияtypeid()
Читать статью: «Как определить тип переменной C++»
-
C#
:
есть похожая функцияGetType()
-
Go
:
функцияtypeof()
доступна из библиотеки reflect
-
Java
:
операторinstanceof
-
PHP
:
эту задачу решаетgettype()
Читать статью: «Как определить тип переменной PHP»
Автор статьи: Андрей Олегович
Похожие статьи
| C | |
| C++ | |
| Go | |
| Groovy | |
| Java | |
| JavaScript | |
| PHP | |
| Python | |
| Ruby | |
| .NET/C# | |
| Thrift | |
| Теория Программирования |
In this tutorial, we’ll learn about getting and testing the type of variables by using two different ways, and finally, we’ll know the difference between these two ways.
1. Checking Variable Type With Type() built-in function
what is type()
type() is a python built function that returns the type of objects
syntax
type(object)
Example 1: Getting the type of variable
""" in this code, we have many different types of variables """
#list
variable_1 = [1, 2, 3]
#string
variable_2 = "hello programmers"
#tuple
variable_3 = (1, 2, 3)
#dictionry
variable_4 = {"hello":"programmers"}
As you can see, in the above code we have many different variables,
now let’s get the type of these variables.
""" in this code, we'll get the type of our variables """
print(type(variable_1))
print(type(variable_2))
print(type(variable_3))
print(type(variable_4))
output
<class 'list'>
<class 'str'>
<class 'tuple'>
<class 'dict'>
If you want to know all types of objects in python, you’ll find it in the final part of the article.
Example 2: checking if the type of variable is a string
let’s say that you want to test or check if a variable is a string, see the code bellow
""" in this code, we'll check if a variable is a string """
#variable
variable_2 = "hello programmers"
#check the typle of variable_2
if type(variable_2) is str:
print("Yes it is")
output
Yes it is
As you can see, the code works very well, but this is not the best way to do that.
Remember!, if you want to check the type of variable, you should use isinstance() built function.
2. Checking Variable Type With isinstance() built-in function
what is isinstance()
The isinstance() is a built-in function that check the type of object and return True or False
sytnax
isinstance(object, type)
example 1: checking variables type
""" in this code, we'll check or test the variable's type """
#list
list_var = [1, 2, 3]
#string
string_var = "hello programmers"
#tuple
tuple_var = (1, 2, 3)
#dictionry
dictionry_var = {"hello":"programmers"}
#check if "list_var" is list
print(isinstance(list_var, list))
#check if "string_var" is tuple
print(isinstance(string_var, tuple))
#check if "tuple_var" is tuple
print(isinstance(tuple_var, tuple))
#check if "dictionry_var" is dictionary
print(isinstance(dictionry_var, dict))
output
True
False
True
True
example 2: Doing something after checking variable type
""" in this code, we'll print 'Yes' if the variable is a string """
#string
string_var = "hello programmers"
if isinstance(string_var, str) == True:
print("Yes")
output
Yes
3. When you should use isinstance() and type()
if you want to get type of object use type() function.
if you want to check type of object use isinstance() function
4. Data Types in Python
str
int
float
complex
list
tuple
range
dict
bool
bytes
Last Updated :
29 Nov, 2023
In this article, we will explore the essential skill of determining the type of an object in Python. Before engaging in any operations on an object within the Python programming language, it is imperative to possess the knowledge of how to check its type. This fundamental task is encountered regularly, whether you are working on a personal project or a complex production system.
Check the Type of an Object in Python
Python offers several methods for identifying an object’s type, with the most basic being the built-in type() function, which provides a quick way to check an object’s type. More advanced techniques, such as the isinstance() function, offer the advantage of handling class hierarchies and inheritance. We will start by going over the built-in type() function and then go on to more advanced methods such as the isinstance() function, the __class__ property, and others.
Get and print an object’s type: type()
type() returns the object’s type. It is similar to a type in other programming languages in that it can be used to get and print the type of a variable or literal.
Python3
print(type('string')) # <class 'str'> print(type(500)) # <class 'int'> print(type([9, 8, 7])) # <class 'list'>
Output
<class 'str'> <class 'int'> <class 'list'>
Get and print an object’s type: isinstance()
isinstance(object, type) returns True if the object argument is a subclass or instance of the supplied type parameter. Use a tuple as the second option to check for various types. It returns True if the object is an instance of any of the supplied types.
Python3
print(isinstance('string', str)) # True print(isinstance(300, str)) # False print(isinstance(700, (int, str))) # True
Get and print an object’s type: class__ attribute
In Python, everything is an object, and each object has characteristics of its own. The ‘__class__’ attribute is the only one that can return the class type of the object. The __class__ attribute in Python can also be used to verify object type in addition to built-in functions.
Each Python object has an attribute called __class__ that contains the object’s class information. For example, the class of integer 5 may be found using the code below.
Python3
x = 10 print(x.__class__) #<type 'int'> y = "GeeksForGeeks" print(y.__class__) #<type 'str'> z = 90.0 print(z.__class__) #<type 'float'>
Output
<class 'int'> <class 'str'> <class 'float'>
Get and print an object’s type: ‘==’ operator and type()
Another method for determining an object’s type is to use the type() function and the == operator. This can be used to compare the type of an object to a specific class. For example, to determine whether the integer 5 is of type int, we can use the following code:
Python
x = 5 print(type(x) == int) # True y = 5.0 print(type(y) == float) # True z = "GeeksforGeeks" print(type(z) == int) # False
Remember that Python is a dynamically typed language, which means that the type of a variable might change while it is being used. As a result, it may be necessary to check the kind of an item before doing specified tasks. For example, to add two numbers, we must ensure that they are both integers or floats.
Example
The preceding code demonstrates how a variable’s object type might change during execution.
Python
x = 10 print(type(x)) x = "GeeksForGeeks" print(type(x))
Output
<type 'int'> <type 'str'>
The initial print statement displayed the type as ‘int’ since 10 is an integer, but after assigning a string to the same variable, the same print statement displayed the type as ‘str’ due to the dynamic change of object type.
Python’s dynamically typed nature necessitates the process of checking object types. For example, if we wish to add two numbers, we must ensure that they are both integers or floats. Incompatible class type operations would result in errors that could only be debugged using functions like type() or the other approach of accessing the ‘__class__’ property.
In summary, mastering object type checking in Python is crucial for developers at all levels, whether you’re a beginner or an experienced programmer. Understanding the techniques, such as type(), isinstance(), and class, is essential for creating efficient and reliable code. These methods provide a versatile toolkit for various type-checking scenarios and will enhance your proficiency in Python development.
Функция type() в Python является мощным инструментом для определения типа переменной или объекта. Она позволяет программистам получить информацию о типе данных, с которыми они работают.
В этой статье мы рассмотрим синтаксис функции type(), ее применение и приведем примеры использования.
Синтаксис функции type()
Функция type() имеет следующий синтаксис:
type(object)
Здесь:
objectпредставляет переменную или объект, тип которого мы хотим определить. Функцияtype()возвращает тип объекта в виде объекта типаtype.
Примеры использования
Пример 1: Определение типа переменной
main.py
x = 10
print(type(x)) # Output: <class 'int'>
y = 3.14
print(type(y)) # Output: <class 'float'>
name = "John"
print(type(name)) # Output: <class 'str'>
В этом примере мы определяем типы трех переменных: x, y и name. С помощью функции type() мы выводим на экран их типы. Результатом будут соответственно: <class 'int'>, <class 'float'> и <class 'str'>.
Пример 2: Определение типа объекта
main.py
numbers = [1, 2, 3, 4, 5]
print(type(numbers)) # Output: <class 'list'>
person = {"name": "John", "age": 30}
print(type(person)) # Output: <class 'dict'>
is_valid = True
print(type(is_valid)) # Output: <class 'bool'>
В этом примере мы определяем типы трех разных объектов: список (list), словарь (dict) и логическое значение (bool). Мы используем функцию type() для вывода их типов. Результатом будут соответственно: <class 'list'>, <class 'dict'> и <class 'bool'>.
Заключение
Функция type() является полезным инструментом для определения типов переменных и объектов в Python. Она позволяет программистам получать информацию о типах данных, с которыми они работают, что может быть полезно при отладке и разработке программ.
Определение типов переменных и объектов помогает убедиться, что вы работаете с правильными типами данных и можете применять соответствующие операции и методы. Важно помнить, что типы данных в Python являются динамическими, и объекты могут менять свой тип в процессе выполнения программы.
;
