Les IndexErrors sont l’un des types d’erreurs d’exécution les plus courants en Python. Ils sont déclenchés lorsque vous essayez d’accéder à une valeur d’index dans une liste Python qui n’existe pas. Dans la plupart des cas, les erreurs d’index sont faciles à résoudre. Vous avez juste besoin de faire un peu de débogage.
Dans ce tutoriel, nous allons parler de "indexerror : index de liste hors plage‚" Erreur. Nous allons discuter de son fonctionnement et passer en revue un exemple de scénario dans lequel cette erreur est présente afin que nous puissions la résoudre.
Le problème : indexerror : list index out of range
Comme toujours, le meilleur endroit pour commencer est de lire et de décomposer notre message d’erreur :
Ce message d’erreur nous indique que nous essayons d’accéder à une valeur dans un tableau qui n’a pas de position d’index.
En Python, les numéros d’index commencent à 0. Voici un tableau Python typique :
Ce tableau contient trois valeurs. Le premier élément de la liste, Java, a la valeur d’index 0. Chaque valeur suivante a un numéro d’index 1 supérieur au précédent. Par exemple, la valeur d’index de Python est 1.
Si nous essayons d’accéder à un élément à la position d’index 3, une erreur sera renvoyée. Le dernier élément de notre tableau a la valeur d’index 2.
Exemples de scénarios (et de solutions)
Il existe deux scénarios courants dans lesquels l’"index de liste hors limites‚" une erreur est signalée :
81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi dans le secteur technologique 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.
Parcourons les deux de ces scénarios.
Les listes sont indexées à partir de zéro
Le programme suivant imprime toutes les valeurs dans une liste appelée "programming_languages‚" au shell Python :
Tout d’abord, nous avons déclaré deux variables. La variable "langages_de_programmation" stocke la liste des langues que nous voulons imprimer sur la console. La variable "compte" est utilisé pour suivre le nombre de valeurs que nous avons imprimées sur la console.
Ensuite, nous avons déclaré une boucle while. Cette boucle imprime la valeur des "programming_languages‚" à la position d’index stockée dans "count". Ensuite, il ajoute 1 au "count" variable. Cette boucle continue jusqu’à ce que la valeur de "count‚" n’est plus inférieur ou égal à la longueur des "langages_de_programmation‚" list.
Essayons d’exécuter notre code :
Toutes les valeurs de notre liste sont imprimées sur la console mais une erreur est générée. Le problème est que notre boucle continue jusqu’à ce que la valeur de "count" n’est plus inférieur ou égal à la longueur des "programming_languages". Cela signifie que sa dernière itération vérifiera :
Cette valeur n’existe pas. Cela provoque une IndexError. Pour résoudre ce problème, nous pouvons changer notre opérateur de <= à <. Cela garantira que notre liste n’itére que jusqu’à ce que la valeur de "count‚" n’est plus inférieur à la longueur des "langages_de_programmation". Faisons cette révision :
Notre code renvoie :
Nous avons résolu l’erreur avec succès ! Notre boucle n’essaie plus d’afficher les langages de programmation[3]. Il s’arrête lorsque la valeur de "count‚" est égal à 3 car 3 n’est pas inférieur à la longueur de "programming_languages‚".