Comment corriger cette erreur

Résolu
gwendal -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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