Les chaînes de caractères

En maîtrisant les chaînes de caractères, vous comprendrez comment manipuler efficacement du texte dans vos programmes Python. Cela est particulièrement utile pour traiter des entrées utilisateur ou des fichiers texte.

Les chaînes de caractères (ou strings) sont l’un des types de données les plus utilisés en Python. Une chaîne est une séquence de caractères, comme des lettres, des chiffres ou des symboles, entourée de guillemets simples ou doubles.

Définir une chaîne de caractères

Exemple 1 : Chaînes simples

texte1 = "Bonjour"
texte2 = 'Python est génial !'

Exemple 2 : Chaînes multilignes

Pour créer une chaîne sur plusieurs lignes, utilisez des guillemets triples (''' ou """).

texte = """Ce texte
s'étend sur
plusieurs lignes."""

Accéder aux caractères d’une chaîne

Les chaînes sont des séquences, donc chaque caractère a un index, commençant par 0.

Exemple 3 : Indexation

texte = "Python"
print(texte[0])  # Premier caractère : P
print(texte[-1])  # Dernier caractère : n

Opérations de base sur les chaînes

Exemple 4 : Concaténation

On peut combiner deux chaînes avec l’opérateur +.

prenom = "Alice"
nom = "Dupont"
print(prenom + " " + nom)  # Alice Dupont

Exemple 5 : Répétition

L’opérateur * permet de répéter une chaîne.

print("Python! " * 3)  # Python! Python! Python!

Longueur d’une chaîne

La fonction len() donne le nombre de caractères dans une chaîne.

texte = "Bonjour"
print(len(texte))  # 7

Slices (sous-chaînes)

Un slice permet d’extraire une partie d’une chaîne en utilisant des indices.

Exemple 6 : Extraction de sous-chaînes

texte = "Programmation"
print(texte[0:5])  # 'Progr'
print(texte[:6])   # 'Progra'
print(texte[6:])   # 'mmation'

Nous irons plus dans les détails dans le chapitre sur les Slices.

Méthodes utiles pour les chaînes

Python offre de nombreuses méthodes pour manipuler les chaînes.

Changer la casse

  • lower() : Convertit la chaîne en minuscules.
  • upper() : Convertit la chaîne en majuscules.
texte = "Python"
print(texte.lower())  # python
print(texte.upper())  # PYTHON

Supprimer les espaces

  • strip() : Supprime les espaces au début et à la fin.
texte = "   Bonjour   "
print(texte.strip())  # 'Bonjour'

Remplacer des caractères

  • replace() : Remplace une sous-chaîne par une autre.
texte = "Bonjour tout le monde"
print(texte.replace("Bonjour", "Salut"))  # Salut tout le monde

Diviser une chaîne

  • split() : Coupe une chaîne en une liste, selon un séparateur.
texte = "un,deux,trois"
print(texte.split(","))  # ['un', 'deux', 'trois']

Joindre une liste en chaîne

  • join() : Combine les éléments d’une liste en une seule chaîne.
liste = ["Python", "est", "génial"]
print(" ".join(liste))  # Python est génial

Caractères spéciaux

Certains caractères spéciaux s’écrivent avec un antislash (\).
- \n : Saut de ligne.
- \t : Tabulation.

print("Ligne 1\nLigne 2")
print("Python\tRocks!")

Vérifications et recherches dans une chaîne

  • in : Vérifie si une sous-chaîne est présente.
  • startswith() et endswith() : Vérifient si une chaîne commence ou finit par une certaine valeur.
  • find() : Renvoie l’index de la première occurrence d’une sous-chaîne.

Exemple 7 : Recherches

texte = "Bonjour tout le monde"
print("Bonjour" in texte)  # True
print(texte.startswith("Bon"))  # True
print(texte.find("monde"))  # 12

Exercices sur les chaînes de caractères

  1. Nom complet : Demandez à l’utilisateur son prénom et son nom, puis affichez-les ensemble dans une seule chaîne au format : "Nom, Prénom".
  2. Compteur de voyelles : Écrivez un programme qui compte le nombre de voyelles dans une chaîne donnée.
  3. Mot inversé : Demandez à l’utilisateur un mot et affichez-le à l’envers.
  4. Nettoyage de texte : Écrivez une fonction qui supprime tous les espaces inutiles au début et à la fin d’un texte, et le convertit en minuscules.
  5. Remplacement d’un mot : Demandez à l’utilisateur une phrase et un mot à remplacer, ainsi que le mot de remplacement, puis affichez la phrase modifiée.