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

Введение Python - это язык с динамической типизацией, и типы данных переменных выводятся без явного вмешательства разработчика. Если бы у нас был код, который требует, чтобы строка работала правильно, но не хватало подсказок типа, которые не являются обязательными, как мы можем избежать ошибок, если используемая переменная не является строкой? В этом руководстве мы рассмотрим, как проверить, является ли переменная строкой в Python, используя функции type () и isinstance (), а также оператор is: * Проверьте, является ли переменная St

Вступление

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

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

В этом руководстве мы рассмотрим, как проверить, является ли переменная строкой в Python , используя функции type() и isinstance() , а также оператор is

Разработчики обычно используют 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

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus

Содержание