Les chaînes de caractères

(actualisé le )

Généralités

Les chaînes de caractères font partie d’une catégorie d’objets Python que l’on appelle des séquences au même titre que les listes et les tuples. Une chaîne de caractères est une expression alphanumérique entourée de guillemets simples ou doubles.

  1. chaine = "Hello world !"

Les chaînes sont des séquences de caractères. Chacun de ceux-ci occupe une place précise dans la séquence. Sous Python, les éléments d ’une séquence sont toujours indicés (ou numérotés) de la même manière, c ’est-à-dire à partir de zéro .

Propriétés :

  • Comme de nombreux autres langages de programmation populaires, les chaînes de caractères en Python sont des tableaux d’octets représentant des caractères Unicode.
  • Python n’ayant pas de type spécifique de données de caractère, un caractère unique est simplement une chaîne dont la longueur est 1.
  • Les crochets peuvent être utilisés pour accéder aux éléments de la chaîne repérés par leur indice.

Exemples :

  1. # Une chaîne de caractères est de type str
  2. ville = "Paris"
  3. print(type(ville))
  4. '''
  5. <class 'str'>
  6. '''
  7. # Longueur de la chaîne
  8. print(len(ville))
  9. '''
  10. 5
  11. '''
  12. # Extraction du caractère d'indice 0 (c.a.d. en première position)
  13. print(ville[0])
  14. '''
  15. P
  16. '''
  17. # Extraction du dernier caractère
  18. print(ville[-1])
  19. '''
  20. s
  21. '''
  22. # Extraction de tous les caractères (méthode 1)
  23. for element in ville :
  24.     print(element)
  25. '''
  26. P
  27. a
  28. r
  29. i
  30. s
  31. '''
  32. # Extraction de tous les caractères (méthode 2)
  33. for i in range(len(ville)) :
  34.     print(ville[i])
  35. '''
  36. P
  37. a
  38. r
  39. i
  40. s
  41. '''

Télécharger

Slicing

Il arrive fréquemment, lorsque l’on travaille avec des chaînes de caractères, que l’on souhaite extraire une petite chaîne d’une chaîne plus longue. Python propose pour cela une technique simple que l’on appelle slicing (découpage en tranches ). Elle consiste à indiquer entre crochets les indices correspondant au début et à la fin de la tranche que l’on souhaite extraire.

  1. nom = "Laure Dinateur"
  2.  
  3. # Extraction des caractères de l'indice 0 inclus à 5 exclu
  4. print(nom[0:5])
  5. '''
  6. Laure
  7. '''
  8. # Extraction des caractères de l'indice 6 inclus len(nom)+1 exclu
  9. print(nom[6:len(nom)+1])
  10. '''
  11. Dinateur
  12. '''
  13. # Extraction des caractères de l'indice 0 inclus à 8 exclu
  14. print(nom[0:8])
  15. '''
  16. Laure Di
  17. '''
  18. # Extraction des 5 premiers caractères (indices : 0 --> 4)
  19. print(nom[:5])
  20. '''
  21. Laure
  22. '''
  23. # Extraction de tout ce qui suit les 6 premiers caractères
  24. print(nom[6:])
  25. '''
  26. Dinateur
  27. '''

Télécharger

Concaténation

La concaténation consiste à coller les chaînes de caractères les unes à la suite des autres avec l’opérateur +.

  1. prenom = "Steve"
  2. nom = "Rogers"
  3. alias = prenom + " " + nom
  4. '''
  5. Steve Rogers
  6. '''

Télécharger

Test d’appartenance

L’opérateur logique in peut être utilisée pour vérifier si un élément donné fait
partie ou non d’une chaîne de caractères. Attention, cet opérateur est sensible à la casse (minuscule / majuscule)

  1. captain_america = "Steve Rogers"
  2. print("Rogers" in captain_america)
  3. '''
  4. True
  5. '''
  6. print("steve" in captain_america)
  7. '''
  8. False
  9. '''
  10. print("o" in captain_america)
  11. '''
  12. True
  13. '''

Télécharger

Quelques méthodes et fonctions

La méthode lower() renvoie une copie d’une chaîne avec toutes les lettres converties en minuscules.

  1. mot = "Bonjour"
  2. mot1 = mot.lower()
  3. print(mot1)
  4. '''
  5. bonjour
  6. '''

Télécharger

La méthode upper() renvoie une copie d’une chaîne avec toutes les lettres converties en majuscules.

  1. mot = "Bonjour"
  2. mot2 = mot.upper()
  3. print(mot2)
  4. '''
  5. BONJOUR
  6. '''

Télécharger

La méthode swapcase() renvoie une copie d’une chaîne dans laquelle les lettres minuscules sont converties en majuscules et les lettres en majuscules sont converties en minuscules.

  1. mot3 = "National Aeronautics and Space Administration"
  2. print(mot3)
  3. '''
  4. National Aeronautics and Space Administration
  5. '''
  6. mot4 = mot3.swapcase()
  7. print(mot4)
  8. '''
  9. nATIONAL aERONAUTICS AND sPACE aDMINISTRATION
  10. '''

Télécharger

La méthode title() renvoie une copie d’une chaîne avec la première lettre en majuscule dans chaque mot.

  1. mot5 = "national aeronautics and space administration"
  2. print(mot5)
  3. '''
  4. national aeronautics and space administration
  5. '''
  6. mot6 = mot5.title()
  7. print(mot6)
  8. '''
  9. National Aeronautics And Space Administration
  10. '''

Télécharger

La méthode replace(old, new) retourne une nouvelle chaîne qui remplace toutes les occurrences de la chaîne old par la chaîne new.

  1. supporter = "Mon joueur de foot préféré est Mbappé"
  2. print(supporter)
  3. '''
  4. Mon joueur de foot préféré est Mbappé
  5. '''
  6. supporter = supporter.replace("Mbappé","Griezmann")
  7. print(supporter)
  8. '''
  9. Mon joueur de foot préféré est Griezmann
  10. '''

Télécharger

La fonction input() et la méthode format()

La fonction input() permet de créer une fenêtre contextuelle dans laquelle un champ permet de récupérer la réponse de l’utilisateur sous la forme d’une chaîne de caractères. La méthode format() permet de remplacer dans une chaîne de caractères les accolades par les valeurs associées à certaines variables.

  1. prenom = input("Entrez votre prénom : ")
  2. '''
  3. John
  4. '''
  5. nom =  input("Entrez votre nom : ")
  6. '''
  7. SNOW
  8. '''
  9. message = print("Bonjour {} {} !".format(prenom, nom))
  10. '''
  11. Bonjour John SNOW !
  12. '''

Télécharger

Transformer une chaîne de caractères en une liste

La méthode split() permet de transformer une chaîne de caractères comportant plusieurs sous-chaînes en une liste de sous chaînes. Le séparateur par défaut est l’espace séparant les sous-chaînes.

  1. titre = "Welcome to the jungle"
  2. liste_titre = titre.split()
  3. print(liste_titre)
  4. '''
  5. ['Welcome', 'to', 'the', 'jungle']
  6. '''

Télécharger

Il est également possible de préciser le séparateur entre les sous chaînes dans la méthode split().

  1. txt = "Hello, my name is Peter, I am 26 years old"
  2. liste_txt = txt.split(", ")
  3. print(liste_txt)
  4. '''
  5. ['Hello', 'my name is Peter', 'I am 26 years old']
  6. '''

Télécharger