Cours en ligne
Python - Module 8
Manipuler les chaînes de caractères
Ce module présente les principales opérations permettant de créer, lire, transformer,
analyser, nettoyer et découper des chaînes de caractères en Python.
1. Créer une chaîne de caractères
Une chaîne de caractères est une suite de caractères : lettres, chiffres, espaces,
symboles ou ponctuation.
chaine1 = "Bonjour tout le monde"
chaine2 = 'Python est cool'
chaine_multi_ligne = """Ceci est
une chaîne
sur plusieurs lignes."""
Une chaîne peut être écrite avec des guillemets doubles " ",
des guillemets simples ' ' ou des triples guillemets pour plusieurs lignes.
2. Accéder aux caractères : indexation
Chaque caractère d'une chaîne possède un index. En Python, le premier caractère
est à l'index 0.
texte = "Bonjour ça va ?"
print(texte[0])
print(texte[4])
print(texte[6])
print(texte[11])
print(texte[-1])
B
o
r
v
?
| Caractère |
B | o | n | j | o | u | r | | ç | a | | v | a | | ? |
| Index |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
L'index -1 permet d'accéder au dernier caractère de la chaîne.
3. Tranchage : slicing
Le slicing permet d'extraire une partie d'une chaîne de caractères.
phrase = "Programmation"
print(phrase[0:7])
print(phrase[4:])
print(phrase[:5])
print(phrase[::2])
print(phrase[::-1])
Program
rammation
Progr
Pormain
noitammargorP
Dans phrase[0:7], l'index de fin 7 n'est pas inclus.
Les caractères récupérés vont donc de l'index 0 à l'index 6.
4. Modifier la casse
Plusieurs méthodes permettent de modifier les majuscules et minuscules dans une chaîne.
| Méthode |
Rôle |
lower() |
convertit tous les caractères en minuscules |
upper() |
convertit tous les caractères en majuscules |
capitalize() |
met la première lettre en majuscule et le reste en minuscules |
title() |
met la première lettre de chaque mot en majuscule |
swapcase() |
inverse majuscules et minuscules |
chaine = "python est TROP bien"
print(chaine.capitalize())
chaine = "manger des fruits et des légumes"
print(chaine.title())
chaine = "PyThOn"
print(chaine.swapcase())
Python est trop bien
Manger Des Fruits Et Des Légumes
pYtHoN
5. Analyser une chaîne
Longueur avec len()
chaine = "programmation"
longueur = len(chaine)
print(longueur)
13
Compter avec count()
chaine = "le chemin le plus long n’est pas le plus court"
nombre_le = chaine.count("le")
print(nombre_le)
3
count() compte les occurrences exactes d'une sous-chaîne.
Rechercher avec find()
chaine = "BAC PRO CIEL à Loches"
mot_ciel = chaine.find("CIEL")
mot_banane = chaine.find("banane")
print(mot_ciel)
print(mot_banane)
8
-1
Si le mot recherché n'existe pas, find() renvoie -1.
Tester la présence avec in
if "CIEL" in chaine:
print("Mot trouvé")
Mot trouvé
6. Tester le contenu d'une chaîne
Certaines méthodes permettent de vérifier la nature des caractères d'une chaîne.
print("Python".isalpha())
print("P2th0n".isalpha())
print("1235".isdigit())
print("P123O".isdigit())
print("Pyth012n".isalnum())
print("P123@".isalnum())
print(" ".isspace())
print("le 2".isspace())
True
False
True
False
True
False
True
False
| Méthode |
Rôle |
isalpha() |
vérifie si tous les caractères sont alphabétiques |
isdigit() |
vérifie si tous les caractères sont des chiffres |
isalnum() |
vérifie si tous les caractères sont alphanumériques |
isspace() |
vérifie si tous les caractères sont des espaces blancs |
7. Nettoyer et remplacer
Supprimer les espaces avec strip()
chaine_sale = " Bonjour le monde \n"
print(chaine_sale)
print(chaine_sale.strip())
Bonjour le monde
Bonjour le monde
strip() supprime les espaces au début et à la fin, mais pas au milieu de la chaîne.
Remplacer avec replace()
phrase = "Les pommes sont des légumes. J’aime les légumes."
nouvelle_phrase = phrase.replace("légumes", "fruits")
print(nouvelle_phrase)
Les pommes sont des fruits. J’aime les fruits.
8. Découper et reconstruire : split() et join()
Découper avec split()
phrase = "Ceci est une phrase"
liste_mots = phrase.split(" ")
print(liste_mots)
csv_data = "Jean,23,Loches"
liste_csv = csv_data.split(",")
print(liste_csv)
['Ceci', 'est', 'une', 'phrase']
['Jean', '23', 'Loches']
Reconstruire avec join()
liste_dossier = ["etc", "var", "www", "html"]
chaine_construite = "/".join(liste_dossier)
print(chaine_construite)
liste_num = ["192", "168", "1", "254"]
ip_construite = ".".join(liste_num)
print(ip_construite)
etc/var/www/html
192.168.1.254
split() transforme une chaîne en liste.
join() transforme une liste en chaîne.
9. Erreurs fréquentes
Index hors limites
texte = "Python"
print(texte[20])
IndexError: string index out of range
Confondre index et position
texte = "Python"
print(texte[1])
y
Le premier caractère est à l'index 0. Donc texte[1]
affiche le deuxième caractère.
Oublier les parenthèses d'une méthode
chaine = "BONJOUR"
print(chaine.lower)
Ici, Python affiche l'objet méthode, mais ne transforme pas le texte.
Il faut écrire chaine.lower().
10. Synthèse
Voici les notions essentielles à retenir pour ce module.
Accès
- index
- index négatif
- slicing
Transformation
- lower()
- upper()
- capitalize()
- title()
- replace()
Analyse
- len()
- count()
- find()
- in
- isalpha(), isdigit()
Points clés à retenir :
Une chaîne est une suite de caractères.
Le premier caractère est à l'index 0.
Le slicing permet d'extraire une partie de la chaîne.
split() découpe une chaîne et join() la reconstruit.