Verifique se a variável é string ou não está em Python
-
Use a função
type()
para verificar se uma variável é uma string ou não -
Use a função
isinstance()
para verificar se uma variável é uma string ou não
O tipo de dados string é usado para representar uma coleção de caracteres. Este tutorial irá discutir como verificar se uma variável é do tipo string ou não.
Use a função type()
para verificar se uma variável é uma string ou não
A função type()
retorna o tipo de classe da variável passada. O código a seguir mostra como usar esta função para verificar se uma variável é uma string ou não.
value = "Yes String"
if type(value) == str:
print("True")
else:
print("False")
Resultado:
True
No entanto, é importante notar que este método é geralmente desencorajado e é denominado unidiomático em Python. A razão por trás disso é porque o operador ==
compara a variável apenas para a classe de string e retornará False
para todas as suas subclasses.
Use a função isinstance()
para verificar se uma variável é uma string ou não
Portanto, é encorajado o uso da função isinstance()
em vez do tradicional type()
. A função isinstance()
verifica se um objeto pertence à subclasse especificada. O trecho de código a seguir irá explicar como podemos usá-lo para verificar se há objetos de string.
value = "Yes String"
if isinstance(value, str):
print("True")
else:
print("False")
Resultado:
True
No Python 2, podemos usar a classe basestring
, que é uma classe abstrata para str
e unicode
, para testar se um objeto é uma instância de str
ou unicode
. Por exemplo,
value = "Yes String"
if isinstance(value, basestring):
print("True")
else:
print("False")
Resultado:
True
Para usar o método acima no Python 3, podemos usar o módulo six
. Este módulo possui funções que nos permitem escrever código compatível com Python 2 e 3.
A função string_types()
retorna todos os tipos possíveis para dados de string. Por exemplo,
import six
value = "Yes String"
if isinstance(value, six.string_types):
print("True")
else:
print("False")
Resultado:
True
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn