Comment corriger cette erreur

Résolu/Fermé
gwendal - Modifié le 3 janv. 2022 à 14:01
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 3 janv. 2022 à 14:06
Bonjour,

J'ai une erreur de type :
while grille[int(colonne)+int(ligne)] != " ":
IndexError: list index out of range


Comment faire ?

Merci.

2 réponses

jordane45 Messages postés 38367 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 janvier 2025 4 721
21 déc. 2021 à 17:54
Bonjour,

Comment as tu défini la variable grille ?
Une liste à deux dimensions ?
Si oui.. pourquoi n'utilises tu pas plutôt deux boucles for imbriquées pour parcourir ta liste ?
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
3 janv. 2022 à 14:06
Bonjour,

Sans le code complet, difficile de te dire comment corriger ton programme, mais dans l'esprit, cette erreur signifie que l'index calculé par
int(colonne) + int(ligne)
est plus grand que
len(grille)
.

Ensuite, vu que colonne et ligne sont des entiers, ça n'a pas vraiment de sens de les additionner pour accéder à une case de ta grille :
  • Si tu utilises une liste contenant
    m
    listes de taille
    n
    , ça devrait plutôt être
    grille[int(colonne)][int(ligne)]
    ;
  • Si tu utilises juste une liste simple de longueur égale à
    m * n
    , il faudrait écrire quelque chose du genre
    grille[int(ligne) * num_colonnes + int(colonne)]
    .


Bonne chance
0