Manipulation des Chaînes de Caractères¶
Les chaînes de caractères (str) sont un type fondamental en Python. Elles sont immuables (ne peuvent pas être
modifiées après création) et offrent de nombreuses méthodes pour les manipuler.
1. Création et Accès aux Caractères¶
a) Déclaration de chaînes¶
texte = "Bonjour, monde!"
texte = 'Bonjour, monde!' # même résultat
multiligne = """Ceci est une chaîne
sur plusieurs lignes."""
b) Accès aux caractères (indexation)¶
print(texte[0]) # "B" (premier caractère)
print(texte[-1]) # "!" (dernier caractère)
print(texte[7:12]) # "monde" (slicing)
Avertissement
En python, contrairement à d’autres langages, l’usage des '' est identique à l’usage des "" : les deux sont
interprétés comme des chaînes de caractères. Ils sont interchangeables et peuvent être utilisés selon les
préférences personnelles ou les conventions de style du projet. Les '' ne désignent pas des caractères
individuels. texte[0] ne donne pas un caractère, mais plutôt une chaîne de caractères contenant un seul
caractère.
2. Méthodes Essentielles¶
a) len() – Longueur d’une chaîne¶
b) str.lower() / str.upper() – Conversion de casse¶
c) str.strip() – Suppression des espaces (ou caractères spécifiés)¶
texte = " Bonjour "
print(texte.strip()) # "Bonjour" (supprime les espaces avant/après)
print(texte.lstrip()) # "Bonjour " (seulement à gauche)
print(texte.rstrip()) # " Bonjour" (seulement à droite)
# Supprimer d'autres caractères
print("...xabcx...".strip(".")) # "xabcx"
d) str.split() – Découpage en liste¶
phrase = "Bonjour, monde!"
mots = phrase.split() # ["Bonjour,", "monde!"]
mots = phrase.split(",") # ["Bonjour", " monde!"] (split sur la virgule)
e) str.join() – Concaténation avec un séparateur¶
mots = ["Bonjour", "monde"]
phrase = " ".join(mots) # "Bonjour monde"
phrase = "-".join(mots) # "Bonjour-monde"
3. Recherche et Remplacement¶
a) str.find() / str.index() – Position d’une sous-chaîne¶
texte = "Hello, Python!"
print(texte.find("Python")) # 7 (position de départ)
print(texte.find("Java")) # -1 (non trouvé)
# index() lève une exception si non trouvé
try:
print(texte.index("Java"))
except ValueError:
print("Non trouvé")
b) str.replace() – Remplacement¶
c) str.count() – Nombre d’occurrences¶
4. Vérification de Contenu¶
a) Méthodes de test (str.startswith(), str.endswith(), etc.)¶
texte = "Bonjour, monde!"
print(texte.startswith("Bon")) # True
print(texte.endswith("!")) # True
# Vérifier si tous les caractères sont des chiffres/lettres
print("123".isdigit()) # True
print("abc".isalpha()) # True
b) in – Opérateur d’inclusion¶
texte = "Bonjour"
print("o" in texte) # True
print("z" in texte) # False
print("z" not in texte) # True
5. Formatage de Chaînes (f-strings, .format())¶
a) f-strings (Python 3.6+)¶
nom = "Alice"
âge = 25
print(f"Bonjour {nom}, vous avez {âge} ans.") # "Bonjour Alice, vous avez 25 ans."
b) .format()¶
6. Exercices Pratiques¶
1. Nettoyage de texte¶
Écrivez une fonction qui :
- Supprime les espaces en début/fin.
- Remplace les tabulations par des espaces.
Exemple :
2. Compteur de mots¶
Écrivez une fonction qui compte le nombre de mots dans une phrase.
Indice : Utilisez split().
Exemple :
3. Censurer un mot¶
Remplacez tous les occurrences d’un mot par ***.
Exemple :
7. Résumé des Méthodes Clés¶
| Méthode | Description | Exemple |
|---|---|---|
len() |
Longueur de la chaîne | len("abc") → 3 |
lower() / upper() |
Conversion de casse | "ABC".lower() → "abc" |
strip() |
Suppression d’espaces | " abc ".strip() → "abc" |
split() |
Découpage en liste | "a,b".split(",") → ["a", "b"] |
join() |
Concaténation avec séparateur | "-".join(["a", "b"]) → "a-b" |
find() / index() |
Position d’une sous-chaîne | "abc".find("b") → 1 |
replace() |
Remplacement | "abc".replace("a", "x") → "xbc" |
8. Bonnes Pratiques¶
✅ Utilisez f-strings pour le formatage (plus lisible).
✅ Préférez str.startswith()/endswith() aux comparaisons manuelles.
⚠️ Évitez les boucles sur les chaînes (utilisez des méthodes intégrées).
Conclusion¶
Les chaînes de caractères en Python sont riches en fonctionnalités. Maîtriser ces méthodes vous permettra d’écrire du code plus efficace et lisible.
📌 Astuce : Utilisez help(str) dans le REPL pour voir toutes les méthodes disponibles sur les chaînes !