index de chaîne Python

Comme les listes, les Les chaaînes Python sont indexées. Cela signifie que chaque valeur d’une chaaîne a son propre numéro d’index que vous pouvez utiliser pour accéder à cette valeur. Si vous essayez d’accéder à une valeur d’index qui n’existe pas dans une chaaîne, vous rencontrerez une "Error;TypeError: string index out of range‚" error.

Dans ce guide, nous discutons de la signification de cette erreur et de la raison pour laquelle elle est déclenchée. Nous passons en revue un exemple de cette erreur en action pour vous aider à comprendre comment la résoudre.

TypeError: string index out of range

En Python, les chaaînes sont indexées à partir de 0 Jetez un ≈ìil à la chaaîne "Ananas‚" :

P ineapple
12345678

"Ananas‚" contient neuf lettres. Parce que les chaaînes sont indexées à partir de 0, la dernière lettre de notre chaaîne a le numéro d’index 8. La première lettre de notre chaaîne a le numéro d’index 0.

Si nous essayons d’accéder à un élément à la position 9 dans notre liste, nous rencontrerons une erreur. C’est parce qu’il n’y a pas de lettre à la position d’index 9 pour Python à lire.

La "TypeError : index de chaaîne hors limites‚" L’erreur est courante si vous oubliez de prendre en compte que les chaaînes sont indexées à partir de 0. C’est également courant dans les boucles for qui utilisent une instruction range().

Exemple de scénario : les chaaînes sont indexées à partir de 0

Regardez un programme qui imprime toutes les lettres d’une chaaîne sur une nouvelle ligne :

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Notre code utilise un boucle while pour parcourir chaque lettre de la variable "phrase". Chaque fois qu’une boucle s’exécute, notre variable "count‚" est augmenté de 1. Cela nous permet de passer à la lettre suivante lorsque notre boucle continue.

Appelons notre fonction avec un exemple de phrase :

Notre code renvoie :

Notre code imprime chaque caractère de notre chaaîne. Une fois que chaque caractère est imprimé, une erreur est générée. C’est parce que notre boucle while continue jusqu’à ce que "count&rdquo ; n’est plus inférieur ou égal à la longueur de "phrase".

Pour résoudre cette erreur, nous devons nous assurer que notre boucle while ne s’exécute que lorsque "count" est inférieur au longueur de notre chaaîne. En effet, les chaaînes sont indexées à partir de 0 et la méthode len() renvoie la longueur complète d’une chaaîne. Ainsi, la longueur de "string" est 6. Cependant, il n’y a pas de caractère à la position d’index 6 dans notre chaaîne.

Révisons notre boucle while :

Cette boucle ne fonctionnera que tant que la valeur de "count‚" est inférieure à la longueur de "phrase‚".

Exécutez notre code et voyez ce qui se passe :

Notre code s’exécute avec succès !

Exemple de scénario : programme de distance de Hamming

Ici, nous écrivons un programme qui calcule la distance de Hamming entre deux séquences. Cela nous indique combien de différences il y a entre deux chaaînes.

Commencez par définir une fonction qui calcule la distance de Hamming :

Notre fonction accepte deux arguments : a et b. Ces arguments contiennent les valeurs de chaaîne que nous voulons comparer.

Dans notre fonction, nous utilisons une boucle for pour parcourir chaque position dans nos chaaînes pour voir si les caractères à cette position sont les mêmes. S’ils ne sont pas les mêmes, les "différences" compteur est augmenté de un.

Appelez notre fonction et essayez-la avec deux chaaînes :

Exécutez notre code et voyez ce qui se passe :

Notre code renvoie une erreur. Ceci est d√ª au fait que "a" et "b" n’ont pas la même longueur. "a" a un caractère de plus que "b". Cela amène notre boucle à essayer de trouver un autre caractère dans "b". qui n’existe pas même après que nous ayons recherché dans tous les caractères acteurs dans "b‚".

Nous pouvons résoudre cette erreur en vérifiant d’abord si nos chaaînes sont valides :

Nous avons utilisé un "if‚" instruction pour vérifier si nos chaaînes ont la même longueur. S’ils le sont, notre programme s’exécutera. Si ce n’est pas le cas, notre programme imprimera un message sur la console et notre fonction renverra une valeur nulle à notre programme principal. Exécutez à nouveau notre code :

"Career Karma est entré dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à suivre un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et objectifs dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Notre code ne renvoie plus d’erreur. Essayez notre algorithme sur des chaaînes de même longueur :

Notre code renvoie : 1. Notre code a calculé avec succès la distance de Hamming entre les chaaînes "Test‚" et "Tess".

Conclusion

La "TypeError : index de chaaîne hors limites‚" une erreur est générée lorsque vous essayez d’accéder à un élément à une position d’index qui n’existe pas. Vous résolvez cette erreur en vous assurant que votre code traite les chaaînes comme si elles étaient indexées à partir de la position 0.

Maintenant, vous êtes prêt à résoudre cette erreur Python courante comme un codeur professionnel !