IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Index out of range


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Index out of range
    Bonjour,Bonsoir
    J'essaye de faire un tetris via python et pygame mais je rencontre l'erreur
    index out of range
    .
    Je sais ce qu'est l'erreur index out of range mais je n'arrive pas à la fixer car je ne comprends pas où est l'erreur.
    J'ai défini ma fonction descente() dans le fichier tetris.py comme première ébauche, idem pour droite() et gauche() qui fonctionnent très bien lors du test via tetris.py. Or, leur utilisation dans le fichier tetrisv1.0.py dans le dossier tetris final provoque des erreurs, pour droite() et descente(), lors que le bloc tente de passer le mur, j'obtient l'erreur
    index out of range
    et pour gauche(), le bloc passe de l'autre coté.
    PS:J'ai du supprimer le son pour pouvoir le partager.
    tetris.py Tetris Final.zip

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 294
    Points : 36 790
    Points
    36 790
    Par défaut
    Salut,

    Citation Envoyé par Ludmino Voir le message
    Je sais ce qu'est l'erreur index out of range mais je n'arrive pas à la fixer car je ne comprends pas où est l'erreur.
    Partez d'une liste L de dimension N.
    Si dans une boucle for x in range(N), on accède à L[x+1] sûr que çà va planter en IndexError pour x = N - 1.
    Et si L[x-1] ne plante pas pour x = 0 (car on accède au dernier élément), le résultat ne sera peut être pas celui attendu.

    - W

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci de cette réponse rapide, je me doute qu'il tente de sortir des bornes de la liste, mais je ne comprends pas pourquoi car son ébauche était parfaitement fonctionnel et depuis son intégration (copié/collé) dans le fichier, ça ne fonctionne plus, j'ai beau chercher je ne comprends pas et ne trouve pas d'ou cela peut venir.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 294
    Points : 36 790
    Points
    36 790
    Par défaut
    Citation Envoyé par Ludmino Voir le message
    depuis son intégration (copié/collé) dans le fichier, ça ne fonctionne plus, j'ai beau chercher je ne comprends pas et ne trouve pas d’où cela peut venir.
    Si vous comprenez que çà ne peut pas marcher, commencez par corriger votre code!

    - W

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 037
    Points
    31 037
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Ludmino Voir le message
    ça ne fonctionne plus, j'ai beau chercher je ne comprends pas et ne trouve pas d'ou cela peut venir.
    Le module d'introspection Python affiche la ligne qui provoque l'erreur. Et si cette ligne est dans une fonction, il affiche alors la ligne qui a appelé cette fonction. Et si cette ligne est elle-même dans une fonction alors il affiche la ligne qui a appelé cette fonction et etc etc etc.
    Donc suffit de jouer au petit poucet et examiner chaque ligne mentionnée. Quitte à rajouter quelques print() pour vérifier ce qui se passe.

    Accessoirement, moi je vois une grille de 10x24 et dans ta fonction "gauche()" tu fais commencer "x" à 0 puis tu tapes dans grille[y][x-1] (ligne 87). De même dans la fonction "droite()" tu fais démarrer "x" à 9 et tu tapes dans grille[y][x+1] (ligne 108). Alors autant grille[y][-1] fonctionnera (même si ça équivaut alors à grille[y][9] ce qui ressemble à ta description du passage de l'autre côté), autant grille[y][10] provoquera un IndexError.

    Citation Envoyé par Ludmino Voir le message
    car son ébauche était parfaitement fonctionnel et depuis son intégration (copié/collé) dans le fichier, ça ne fonctionne plus
    Ca arrive parfois quand on utilise des globales sans les maitriser vraiment. Déjà le simple fait d'utiliser des globales sans raison sérieuse est souvent mal vu de l'ensemble de la communauté justement parce que ça entraine ce type de conséquences...

Discussions similaires

  1. IndexError: string index out of range
    Par nina08 dans le forum Général Python
    Réponses: 2
    Dernier message: 04/08/2008, 09h27
  2. un impossible "list index out of range" alors que si !
    Par guiguizekid dans le forum Général Python
    Réponses: 3
    Dernier message: 18/05/2008, 04h04
  3. String index out of range
    Par *alexandre* dans le forum Langage
    Réponses: 3
    Dernier message: 08/01/2008, 04h19
  4. probleme de relogin: String index out of range: 0
    Par bbany dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 07/09/2007, 17h04
  5. list index out of range
    Par watcha2020 dans le forum Général Python
    Réponses: 2
    Dernier message: 29/06/2006, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo