Python: erreur list index out of range [Résolu]
A voir également:
- Python: erreur list index out of range
- Python indexerror: list index out of range ✓ - Forum - Python
- IndexError: list index out of range - Forum - Python
- Erreur : IndexError: list index out of range ✓ - Forum - Python
- Python list index out of range - Forum - Python
- List index out of range python - Forum - Python
5 réponses
Reivax962
- Messages postés
- 3666
- Date d'inscription
- jeudi 16 juin 2005
- Statut
- Membre
- Dernière intervention
- 8 janvier 2021
Bonjour,
Ton problème doit se situer au niveau des bords : tu fais M[i+1] et autres M[][j-1] sans vérifier que ces valeurs existent.
Xavier
Ton problème doit se situer au niveau des bords : tu fais M[i+1] et autres M[][j-1] sans vérifier que ces valeurs existent.
Xavier
Chris 94
- Messages postés
- 50335
- Date d'inscription
- mardi 8 janvier 2008
- Statut
- Modérateur
- Dernière intervention
- 10 janvier 2021
Bonjour,
Merci pour cette information. As-tu une question ?
Pour rappel :
Un détail :
quand tu saisis ton code (un copié-collé fait l'affaire) dans la fenêtre d'édition, pense à lui attribuer la couleur syntaxique et la forme correcte avec le bouton
Merci pour cette information. As-tu une question ?
Pour rappel :
Les réponses sont données par des bénévoles, pas par des machines. Il est vivement recommandé d'user des formes minimales de la politesse ("bonjour', "s'il vous plait", "merci d'avance") pour rester dans le cadre de notre charte d'utilisation.
Un détail :
quand tu saisis ton code (un copié-collé fait l'affaire) dans la fenêtre d'édition, pense à lui attribuer la couleur syntaxique et la forme correcte avec le bouton
<>
▼.
yg_be
- Messages postés
- 13825
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 10 janvier 2021
peux-tu fournir un code testable, qui montre le problème?
yg_be
- Messages postés
- 13825
- Date d'inscription
- lundi 9 juin 2008
- Statut
- Contributeur
- Dernière intervention
- 10 janvier 2021
as-tu ajouté des print pour vérifier que ton programme se comporte comme tu l'imagines?
c'est bien d'écrire "on fait M a partir de T", c'est encore mieux de le vérifier.
je pense qu'ainsi tu découvriras rapidement ton erreur.
c'est bien d'écrire "on fait M a partir de T", c'est encore mieux de le vérifier.
je pense qu'ainsi tu découvriras rapidement ton erreur.
camapa
def Int_jeu(n,m,d): while n<2: n=int(input("entrer le nombre de ligne supéreiur ou égale à 2: ")) while m<2: m=int(input("entrer le nombre de collone supéreiur ou égale à 2: ")) while n*m<9: if n<3: n=int(input("entrer le nombre de ligne supérieur à 3: ")) elif m<3: m=int(input("entrer le nombre de collone supérieur à 3: ")) for i in range(n): L=[] for j in range(m): L.append(0) T.append(L) if(d==1): x=(n*m)*15//100 if x<1: x=1 for i in range(x): i=randint(0,n-1) j=randint(0,m-1) T[i][j]=2 elif(d==2): x=(n*m)*30//100 if x<1: x=2 for i in range(x): i=randint(0,n-1) j=randint(0,m-1) T[i][j]=2 elif(d==3): x=(n*m)*45//100 if x<1: x=3 for i in range(x): i=randint(0,n-1) j=randint(0,m-1) T[i][j]=2 elif(d==4): x=(n*m)*60//100 if x<1: x=4 for i in range(x): i=randint(0,n-1) j=randint(0,m-1) T[i][j]=2 while d<0 or d>4: print("entrer un niveau disponible") d=int(input("entrer la dificulter voulu entre 1 et 4, (1 etant le plus simple) : ")) return(T) print(Int_jeu(n,m,d)) def mines_autour(T): for i in range(n): L=[] for j in range(m): L.append(0) M.append(L) for i in range(len(M)) : for j in range(len(M[i])) : if T[i][j]==2: if i-1>=0: M[i-1][j]=M[i-1][j]+1 if i+1<len(M): M[i+1][j]=M[i+1][j]+1 if j+1<len(M[i]): M[i][j+1]=M[i][j+1]+1 if j-1>=0: M[i][j-1]=M[i][j-1]+1 if i-1>=0 and j-1>=0: M[i-1][j-1]=M[i-1][j-1]+1 if i-1>=0 and j+1<len(M[i]): M[i-1][j+1]=M[i-1][j+1]+1 if i+1<len(M) and j-1>=0: M[i+1][j-1]=M[i+1][j-1]+1 if i+1<len(M) and j+1<len(M[i]): M[i+1][j+1]=M[i+1][j+1]+1 return(M) print(mines_autour(T))
c'est le programme presque au complet
Par contre, sur le troisième if
Tu vérifies la taille par rapport à T alors qu'ensuite tu prends dans M.
Es-tu sûr qu'elles ont la même taille ?
oui ce sont exactement la même taille on fait M a partir de T, et même en changeant T par M le problème persiste je ne le comprend vraiment pas