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 :

un impossible "list index out of range" alors que si !


Sujet :

Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 24
    Points
    24
    Par défaut un impossible "list index out of range" alors que si !
    bonjour,

    dans un jeu de poker que je crée, j'ai une fonction "rejeter(main,carte)", qui en fonction de la main (liste de 5 cartes) rejete la carte qui appartient a la main (carte étant une liste ["figure","couleur"])

    dans une fonction de rejet automatique des cartes par les ordis, je fais l'opération suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rejeter(computer,computer[len(computer)-1])
    en gros, je retire la derniere carte de la main, puisque "computer[len(computer)-1]" désigne la derniere carte évidemment!

    malgré l'utilisation de "len(computer)-1", l'interpreteur trouve le moyen de me dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IndexError: list index out of range
    Sauriez vous pourquoi?
    merci

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 478
    Points : 9 280
    Points
    9 280
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Ton approche est valide:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    L=[1,2,3,4]
    print L[len(L)-1]  #  affiche: 4
    Mais tu pourrais aussi faire, pour désigner la dernière carte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print L[-1]  #  affiche: 4
    Ton problème est donc ailleurs: donne plus d'infos!

    Tyrtamos

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2007
    Messages : 52
    Points : 39
    Points
    39
    Par défaut
    Salut guiguizekid,

    Il nous faudrait une partie de ton code, car les explications ne suffisent plus. En effet, ce que tu dis semble impossible. Nous pouvons donc en conclure que l'erreur provient d'ailleurs dans le code...

    Pourrais-tu aussi donner le message d'erreur entier (Le "traceback") que l'ordinateur fournit ainsi que les lignes concernées ?

    Mickaël

  4. #4
    Membre éclairé
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Points : 773
    Points
    773
    Par défaut
    Mais tu pourrais aussi faire, pour désigner la dernière carte:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print L[-1]  #  affiche: 4
    Je plussoie fortement. Si jamais la main de l'ordi est vide (pour je ne sais quelle raison), l'erreur que tu décris sera générée, mais comme dit précédemment, cela vient d'un autre endroit de ton code, où une situation que tu n'as pas prévue se produit... ce qui pour moi, est qu'à un moment, la main de l'ordi est vide, et la fonction rejeter est appelée

Discussions similaires

  1. Erreur Python : list index out of range
    Par mmmppp dans le forum Général Python
    Réponses: 4
    Dernier message: 15/10/2011, 21h59
  2. list index out of range
    Par jouclar dans le forum Général Python
    Réponses: 4
    Dernier message: 29/05/2010, 19h18
  3. list Index out of range
    Par viins dans le forum Général Python
    Réponses: 3
    Dernier message: 03/05/2010, 23h57
  4. Tache cron IndexError: list index out of range
    Par rene2200 dans le forum Général Python
    Réponses: 3
    Dernier message: 20/11/2009, 14h02
  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