1. À propos des indices dans une chaîne de caractères en Python
En Python, une chaîne de caractères est une séquence ordonnée de caractères. Chaque caractère possède une position appelée indice. Grâce à cet indice, il est possible d'accéder directement à un caractère précis sans avoir à parcourir toute la chaîne.
Les indices d'une chaîne commencent à 0. Le premier caractère possède donc l'indice 0, le deuxième l'indice 1, le troisième l'indice 2, et ainsi de suite.
Pour accéder à un caractère, on écrit le nom de la chaîne suivi de l'indice entre crochets.
1 | chaine[indice] |
Sortie :
1 | Le caractère situé à la position indiquée. |
Considérons par exemple la chaîne "Python". Le caractère d'indice 0 est "P" et celui d'indice 1 est "y".
1 2 3 4 | texte = "Python" print(texte[0]) print(texte[1]) |
Sortie :
1 2 | P y |
Pour la chaîne "Python", les caractères et leurs indices positifs sont donc : P → 0, y → 1, t → 2, h → 3, o → 4 et n → 5.
2. Accéder aux caractères avec les indices positifs
Les indices positifs permettent de parcourir une chaîne de gauche à droite. Puisque la numérotation commence à 0, le dernier indice valide d'une chaîne de longueur n est égal à n - 1.
Dans l'exemple suivant, nous accédons à plusieurs caractères de la chaîne "Programmation".
1 2 3 4 5 | mot = "Programmation" print("Premier caractère :", mot[0]) print("Deuxième caractère :", mot[1]) print("Cinquième caractère :", mot[4]) |
Sortie :
1 2 3 | Premier caractère : P Deuxième caractère : r Cinquième caractère : r |
La fonction len() permet de connaître la longueur d'une chaîne. Puisque le dernier caractère possède l'indice len(chaine) - 1, nous pouvons utiliser cette expression pour y accéder.
1 2 3 4 5 6 7 | texte = "Python" dernier_indice = len(texte) - 1 print("Longueur :", len(texte)) print("Dernier indice :", dernier_indice) print("Dernier caractère :", texte[dernier_indice]) |
Sortie :
1 2 3 | Longueur : 6 Dernier indice : 5 Dernier caractère : n |
Il faut faire attention à ne pas utiliser un indice supérieur ou égal à la longueur de la chaîne. Dans ce cas, Python produit une exception IndexError.
1 2 3 4 5 6 | texte = "Python" try: print(texte[6]) except IndexError: print("Erreur : l'indice demandé n'existe pas.") |
Sortie :
1 | Erreur : l'indice demandé n'existe pas. |
Pour une chaîne contenant six caractères, les indices positifs valides vont donc de 0 à 5.
3. Accéder aux caractères avec les indices négatifs
Python permet également d'utiliser des indices négatifs. Ils permettent d'accéder aux caractères en partant de la fin de la chaîne. L'indice -1 désigne le dernier caractère, -2 l'avant-dernier, -3 le troisième caractère en partant de la fin, et ainsi de suite.
L'exemple suivant utilise des indices négatifs avec la chaîne "Python".
1 2 3 4 5 | texte = "Python" print("Dernier caractère :", texte[-1]) print("Avant-dernier caractère :", texte[-2]) print("Troisième en partant de la fin :", texte[-3]) |
Sortie :
1 2 3 | Dernier caractère : n Avant-dernier caractère : o Troisième en partant de la fin : h |
Pour la chaîne "Python", les indices négatifs sont donc : P → -6, y → -5, t → -4, h → -3, o → -2 et n → -1.
Les indices positifs et négatifs peuvent désigner exactement le même caractère. Par exemple, l'indice 0 et l'indice -6 correspondent tous les deux au premier caractère de "Python".
1 2 3 4 5 6 | texte = "Python" print(texte[0]) print(texte[-6]) print(texte[5]) print(texte[-1]) |
Sortie :
1 2 3 4 | P P n n |
Les indices négatifs sont particulièrement pratiques pour accéder au dernier caractère sans avoir besoin de calculer len(chaine) - 1.
1 2 3 4 | fichier = "document.pdf" print("Dernier caractère :", fichier[-1]) print("Avant-dernier caractère :", fichier[-2]) |
Sortie :
1 2 | Dernier caractère : f Avant-dernier caractère : d |
4. Parcourir une chaîne à l'aide des indices
Les indices peuvent être associés à len() et range() afin de parcourir tous les caractères d'une chaîne. L'expression range(len(chaine)) produit successivement tous les indices positifs valides.
Le programme suivant affiche chaque indice accompagné du caractère correspondant.
1 2 3 4 | texte = "Python" for i in range(len(texte)): print("Indice", i, ":", texte[i]) |
Sortie :
1 2 3 4 5 6 | Indice 0 : P Indice 1 : y Indice 2 : t Indice 3 : h Indice 4 : o Indice 5 : n |
Cette technique est particulièrement utile lorsque nous avons besoin de connaître à la fois le caractère et sa position dans la chaîne.
Nous pouvons par exemple rechercher toutes les positions occupées par une lettre déterminée.
1 2 3 4 5 | texte = "programmation" for i in range(len(texte)): if texte[i] == "m": print("La lettre m se trouve à l'indice", i) |
Sortie :
1 2 | La lettre m se trouve à l'indice 6 La lettre m se trouve à l'indice 7 |
Lorsqu'on souhaite obtenir directement l'indice et le caractère pendant un parcours, la fonction enumerate() constitue également une solution très pratique.
1 2 3 4 | texte = "Python" for indice, caractere in enumerate(texte): print(indice, ":", caractere) |
Sortie :
1 2 3 4 5 6 | 0 : P 1 : y 2 : t 3 : h 4 : o 5 : n |
Il est important de rappeler que les chaînes Python sont immuables. Il est possible d'accéder à un caractère par son indice, mais pas de remplacer directement ce caractère en lui affectant une nouvelle valeur.
1 2 3 4 5 6 | texte = "Python" try: texte[0] = "J" except TypeError: print("Impossible de modifier directement un caractère d'une chaîne.") |
Sortie :
1 | Impossible de modifier directement un caractère d'une chaîne. |
Pour modifier le contenu d'une chaîne, il faut donc construire une nouvelle chaîne plutôt que modifier directement l'un de ses caractères.
5. À retenir !
L'utilisation des indices constitue une technique fondamentale pour accéder aux différents caractères d'une chaîne de caractères en Python.
- Les caractères d'une chaîne sont accessibles à l'aide de crochets.
- La syntaxe générale est chaine[indice].
- Les indices positifs commencent à 0.
- Le premier caractère possède donc l'indice 0.
- Pour une chaîne non vide, le dernier indice positif est égal à len(chaine) - 1.
- L'indice -1 désigne le dernier caractère.
- L'indice -2 désigne l'avant-dernier caractère.
- Un indice qui dépasse les limites de la chaîne provoque une exception IndexError.
- range(len(chaine)) permet de parcourir les indices positifs d'une chaîne.
- enumerate() permet d'obtenir simultanément les indices et les caractères pendant un parcours.
- Les chaînes Python sont immuables : un caractère ne peut pas être remplacé directement par affectation à un indice.
Le programme suivant résume les principales techniques d'accès aux caractères avec les indices.
1 2 3 4 5 6 7 8 9 10 11 | texte = "Python" print("Premier caractère :", texte[0]) print("Deuxième caractère :", texte[1]) print("Dernier caractère :", texte[-1]) print("Avant-dernier caractère :", texte[-2]) print("\nTous les caractères :") for i in range(len(texte)): print(i, ":", texte[i]) |
Sortie :
1 2 3 4 5 6 7 8 9 10 11 12 | Premier caractère : P Deuxième caractère : y Dernier caractère : n Avant-dernier caractère : o Tous les caractères : 0 : P 1 : y 2 : t 3 : h 4 : o 5 : n |
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


