Как проверить, является ли переменная строкой?

В данной статье вы узнаете три способа, как проверить является ли переменная строкой в Python.

Введение

Python — это динамически типизированный язык, и переменные типы данных выводятся без явного вмешательства разработчика.

Если бы у нас был код, который требует, чтобы строка работала правильно, но не имел подсказок типа, которые являются необязательными,то как мы можем избежать ошибок, если используемая переменная не является строкой?

В этой статье я объясню, как проверить, является ли переменная строкой в Python, используя функции type, isinstance, а также оператор is.

Разработчики обычно используют type и is, хотя они могут быть ограничены в определенных контекстах, и в этом случае лучше использовать функцию isinstance.

Проверка с помощью функции type

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

Давайте инициализируем строковую переменную с парой других нестроковых переменных и протестируем эту функцию:

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 является оператором идентификации, то есть он проверяет, указывают ли две сравниваемые переменные на одну и ту же ячейку памяти.

Как и в предыдущем примере, мы сравнили результат функции 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.

close

Изучаешь Python?

Оформи подписку и получи моментальный доступ к новым публикациям

Если вы ищите способ системно подойти к обучению языка программирования Python, рекомендую записаться на курсы онлайн обучения.

Поделиться записью в социальных сетях

Добавить комментарий

Ваш адрес email не будет опубликован