1078 votes

Comment vérifier si le type d'une variable est une chaîne en python?

Existe-t-il un moyen de vérifier si le type d'une variable dans python est une chaîne ..

 isinstance(x,int);
 

pour les valeurs entières?

1589voto

Sven Marnach Points 133943

En Python 2.x, vous feriez

 isinstance(s, basestring)
 

vérifier les objets str ou unicode . En Python 3.x, il serait

 isinstance(s, str)
 

244voto

André Fratelli Points 808

Je sais que c'est un vieux sujet, mais étant le premier sur Google et étant donné que je ne trouve aucune des réponses satisfaisantes, je vais laisser cela ici pour référence future:

six est une bibliothèque de compatibilité Python 2 et 3 qui couvre déjà ce problème. Vous pouvez alors faire quelque chose comme ceci:

 import six

if isinstance(value, six.string_types):
    pass # It's a string !!
 

Inspecter le code, voici ce que vous trouvez:

 PY3 = sys.version_info[0] == 3

if PY3:
    string_types = str,
else:
    string_types = basestring,
 

À votre santé.

14voto

Wade Hatler Points 601

Méfiez-vous des chaînes Unicode, que vous pouvez obtenir à partir de plusieurs endroits, y compris tous les appels COM dans Windows.

 if isinstance(target, str) or isinstance(target, unicode):
 

14voto

Locker537 Points 500

Le module type existe aussi si vous vérifiez plus que ints et les chaînes. http://docs.python.org/library/types.html

9voto

Daniel Grankin Points 1132

Aussi je veux remarquer que si vous voulez vérifier si le type d'une variable est un type spécifique, vous pouvez comparer le type de la variable au type d'un objet connu.

Pour la chaîne, vous pouvez l'utiliser

 type(s) == type('')
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X