Автор оригинала: Daniel Pimeh.
Вступление
Python-это динамически типизированный язык, и переменные типы данных выводятся без явного вмешательства разработчика.
Если бы у нас был код, который требует, чтобы строка работала правильно, но не имел подсказок типа, которые являются необязательными, как мы можем избежать ошибок, если используемая переменная не является строкой?
В этом уроке мы рассмотрим как проверить, является ли переменная строкой в Python , используя функции type()
и isinstance ()
, а также оператор is
:
- Проверьте, является ли переменная строкой с типом()
- Проверьте, является ли переменная строкой с оператором is
- Проверьте, является ли переменная строкой с isinstance()
Разработчики обычно используют type()
и is
, хотя в определенных контекстах они могут быть ограничены, и в этом случае лучше использовать функцию isinstance ()
.
Проверьте, является ли переменная строкой с типом()
Встроенная функция type()
может быть использована для возврата типа данных объекта. Например, мы будем ожидать, что возвращаемое значение этой функции будет 'str'>
. ‘str’>
Давайте инициализируем строковую переменную с парой других нестроковых переменных и протестируем эту функцию:
string = "'Do, or do not. There is no try.' - Yoda" integer = 42 float = 3.14 # Print results print("The type of string is ", type(string)) print("The type of integer is ", type(number)) print("The type of float is ", type(float))
Теперь, если мы запустим этот код, это приведет к:
"The type of string is" "The type of integer is " "The type of float is "
Чтобы применить эту логику таким образом, чтобы мы могли изменить поток кода, мы можем сравнить возвращаемое значение функции type()
с классом str
:
user_name = 35 # Checks if variable is a string if (type(user_name)) == str: print("User's name is a string") else: print("User's name is not a string")
Это приводит к:
User's age is not a string
Проверьте, является ли переменная строкой с оператором is
Оператор Python is
является оператором идентификации, то есть он проверяет, указывают ли две сравниваемые переменные на одну и ту же ячейку памяти.
Как и в предыдущем примере, мы сравнили результат функции type()
с классом str
, мы также можем использовать оператор is
:
user_name = "John Doe" # Checks if variable is a string if (type(user_name)) is str: print("User's name is a string") else: print("User's name is not a string")
Это приводит к:
User's name is a string
Проверьте, является ли переменная строкой с isinstance()
Теперь наиболее отказоустойчивым подходом является функция isinstance ()
. Он принимает два аргумента – переменную, которую мы проверяем, и тип, который мы проверяем.
В нашем случае это будет переменная и класс str
.
Давайте создадим пару переменных и проверим их типы:
string = "Hello there!" integer = 42 print("Is string a string?: ", isinstance(string, str)) print("Is integer a string?: ", isinstance(integer, str))
Это приводит к:
"Is string a string?: True" "Is integer a string?: False"
Вывод
Python-это динамически типизированный язык, который вводит множество пользовательских ошибок. Во многих случаях у нас нет никакой гарантии, что переменная, переданная методу, имеет тот тип, в котором мы ее ожидаем.
В этом уроке мы рассмотрели три способа проверить, является ли переменная строкой в Python – с помощью функций type()
и isinstance ()
, а также оператора is
.