Partage
  • Partager sur Facebook
  • Partager sur Twitter

aide pour comprendre une erreur

    2 mars 2021 à 14:22:36

    Bonjour j ai construit un programme pour un devoir que je dois rendre mais je une erreur qui ce produit est-ce-que quelqu'un peut m'aidé. Merci

    from implementation_files import *
    
    liste_sommets3=[[1,2,3],[4,5],[],[6,7],[8],[9],[10],[11],[],[],[],[]]
    liste_sommets2=[[1,2],[0,2,3],[0,1,3],[1,2,4],[3,5],[4]]
    liste_sommets4=[[1,6],[0,4,6],[6],[4,5],[1,3,5,6],[3,4],[0,1,2,4]]
    
    def parcours_largeur(liste,source):
        file=CREER_FILE(len(liste))
        marques=[]
        i=source
        marques.append(i)
        ENFILER(file,i)
    
    
        while EST_VIDE(file)==False:
            sommet=DEFILER(file)
            voisins=liste[sommet]
            for x in voisins:
                if x not in marques:
                    ENFILER(file,x)
                    marques.append(x)
        return marques
    
    def longueurmaxi(liste,source):
        file=CREER_FILE(len(liste))
        marques=[]
        i=source
        marques.append(i)
        ENFILER(file,i)
    
        sommet=DEFILER(file)
        dico={}
        voisins=liste[sommet]
        for x in voisins:
            if x not in marques:
                ENFILER(file,x)
                marques.append(x)
                dico[x]=dico[sommet]+1
    
    
    print(parcours_largeur(liste_sommets4,0))
    print(longueurmaxi(liste_sommets2,4))
    



    -
    Edité par PierreDuRif 2 mars 2021 à 17:14:50

    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2021 à 14:56:47

      c'est quoi le message d'erreur pour commencer ?

      Sinon longueurmaxi ne retourne rien, donc le print ligne 46 n'affichera pas grand chose

      • Partager sur Facebook
      • Partager sur Twitter
        2 mars 2021 à 16:33:59

        je pense que le problème est en ligne 42: à un moment donné, on cherche à accéder à dico[4] (via dico[sommet]) qui n'existe pas à ce moment.

        Il faudrait donc tester au préalable que sommet (ici 4) existe dans les clés de dico avant l'opération.

        • Partager sur Facebook
        • Partager sur Twitter
          2 mars 2021 à 17:05:44

          PierreDuRif a écrit:


          Va falloir trouver une solution pour avoir de meilleurs messages d'erreur que ça, normalement les traceback Python sont très complets, et là c'est pas le cas.

          Je vois pas comment tu peux travailler dans ces conditions. Il faut régler ton IDE ou le changer. Au pire execute ton code dans une console (cmd ou powershell) pour avoir un message d'erreur utilisable.

          -
          Edité par LoupSolitaire 2 mars 2021 à 17:06:55

          • Partager sur Facebook
          • Partager sur Twitter

          Blond, bouclé, toujours le sourire aux lèvres...

            2 mars 2021 à 17:13:54

            Il ne manque en fait que le numéro de la ligne de l'erreur.

            un code minimun pour reproduire ce type d'erreur serait:

            dico={}
            print(dico[4])



            • Partager sur Facebook
            • Partager sur Twitter
              2 mars 2021 à 17:13:56

               c est surement mieux écrie
              • Partager sur Facebook
              • Partager sur Twitter
                2 mars 2021 à 17:14:48

                ça confirme ma réponse précédente donc.
                • Partager sur Facebook
                • Partager sur Twitter

                aide pour comprendre une erreur

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown