Les chaînes de caractères

Les chaînes sont des séquences de caractères non mutables.

On ne peut donc pas modifier un ou plusieurs caractères. Si on ajoute un caractère (ou une autre chaîne) par concaténation à une chaîne existante, le résultat est la création d’une nouvelle chaîne à une nouvelle adresse en mémoire.

Les chaînes sont délimitées par des guillemets simples 'bonjour') doubles "bonjour") ou triples ('''bonjour''').

L’utilisation de guillemets triples permet de faire courir une chaîne de caractères sur plusieurs lignes, comme on l’a vu dans la section consacrée aux “chaînes de documentation” (docstrings).

La possibilité de choisir entre les délimiteurs simples ou doubles permet d’insérer des guillemets dans une chaîne (on pourra par exemple former la chaîne "c'est l'automne").

Les opérations sur les séquences non mutables s’appliquent aux chaînes :

  • appartenance (avec in ch et not in ch),
  • concaténation (avec ch + ch’) et répétition (avec ch * n),
  • longueur avec len(ch), accès indexé et coupes (avec ch [ i ], ch [ i : j ], ch [ i : j : k ])
  • minimum/maximum (max et min)
  • recherche de x par ch.index(x) et occurences par ch.count(x).

Tout comme les listes et les tuples, les chaînes sont itérables, et peuvent donc être parcourues dans une boucle for.

Comme on le voit ici, on concatène des chaînes avec l’opérateur + (ou un simple espace), et on les répète par * :

Voici quelques exemples d’opérations possibles sur les chaînes de caractères :

Les chaînes possèdent un très grand nombre de méthodes qui leur sont propres ; ces méthodes ont souvent un comportement par défaut qui peut être personnalisé en précisant la valeur de paramètres facultatifs. Comme il est impossible de tout citer, voici une simple sélection :

(pour plus de détails consulter : http://docs.python.org/3.3/library/stdtypes.html#text-sequence-type-str)

Voir également la section suivante pour une analyse détaillée de certaines méthodes importantes.

str.endswith(suffix) renvoie True si la chaîne str se termine par la chaîne suffix
str.startswith(prefix) renvoie True si la chaîne str commence par la chaîne prefix
str.isalnum() renvoie True si str est formée uniquement de caractères alphanumériques
str.isalpha() renvoie True si str est formée uniquement de caractères alphabétiques
str.isdigit() renvoie True si str est formée uniquement de chiffres
str.lower() renvoie une chaîne obtenue par passage en minuscules
str.upper() renvoie une chaîne obtenue par passage en majuscules
str.strip() renvoie une chaîne obtenue en supprimant les blancs au début et à la fin
str.replace(old,new[,n]) renvoie une chaîne obtenue en remplaçant old par new, au plus n fois
str.find(sub) indice de la première occurence de sub (et -1 si non trouvé)
str.index(sub) comme find, mais erreur ValueError si non trouvé
str.rfind(sub) indice de la dernière occurence de sub (et -1 si non trouvé)
str.center(n[,c]) renvoie str centrée dans une chaîne de longueur n, bordée par des c
str.ljust(n[,c]) renvoie str justifiée à gauche dans une chaîne de longueur n, complétée par des c
str.rjust(n[,c]) renvoie str justifiée à droite dans une chaîne de longueur n, complétée par des c

Retour à l’accueil du cours Python/Numpy

Sommaire du chapitre 5

  1. Propriétés communes aux séquences (hors “mutations”)
  2. Séquences mutables ou non
  3. Listes définies “en compréhension”
  4. Opérations de mutation de listes
  5. Les tuples
  6. Les chaînes de caractères
  7. Méthodes importantes sur les chaînes (split, join, format)
  8. Objets de type bytes et bytearray