Вступление
Python - это язык с динамической типизацией, и типы данных переменных выводятся без явного вмешательства разработчика.
Если бы у нас был код, который требует, чтобы строка работала правильно, но не хватало подсказок типа, которые не являются обязательными, как мы можем избежать ошибок, если используемая переменная не является строкой?
В этом руководстве мы рассмотрим, как проверить, является ли переменная
строкой в Python , используя функции type()
и isinstance()
, а
также оператор is
- Проверьте, является ли Variable строкой с type ()
- Проверьте, является ли переменная строкой с оператором is
- Проверьте, является ли переменная строкой с isinstance ()
Разработчики обычно используют type()
и is
, однако, они могут быть
ограничены в определенных контекстах, в этом случае, это лучше
использовать isinstance()
функцию.
Проверьте, является ли Variable строкой с type ()
Встроенная type()
может использоваться для возврата типа данных
объекта. Например, мы ожидаем, что возвращаемое значение этой функции
будет <class '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 <class 'str'>"
"The type of integer is <class 'int'>"
"The type of float is <class 'float'>"
Чтобы применить эту логику таким образом, чтобы мы могли изменить поток
кода, мы можем сравнить возвращаемое значение функции 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
Оператор 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