Partage
  • Partager sur Facebook
  • Partager sur Twitter

Besoin d'aide pour une erreur

erreur de name is not defined

    27 octobre 2022 à 22:02:52

    Voicis

    #création de la classe ouvrages ou toutes les actions concernant les livres se passeront
    class Ouvrages:
        def __init__(self):
            self.livre = self.CreerOuvrages()
            self.supprimer = SupprimerOuvrages()
            self.RendreOuvrages = RendreOuvrages()
    
    
    #CreerOuvrages permet de rentrer n'importe quel titre de livre dans la liste d'Ouvrages
        def CreerOuvrages(self):
            listeOuvrages= []
            titre =input("Quel est le nom du livre ?")
            listeOuvrages.append(titre)
            
            return listeOuvrages
    
    
    #ModifierOuvrages permet de modifier le titre d'un ouvrages si une erreur a était produite lors de leurs entrée dans la liste
        def ModifierOuvrages(self):
            print(self.CreerOuvarges)
            ancien_titre = input("Quel ouvrages voulez vous modifier ?")
            nouveau_titre = input("Quel est le nouveau nom que vous souhaitée lui donner")
            listeOuvrages.pop(ancien_titre)
            listeOuvrages.append(nouveau_titre)
            return listeOuvrages
    
    
    #SupprmimerOuvrages permet de supprimer des ouvrages contenue dans la liste créer précédement par exemple si ils sont empruntées
        def SupprimerOuvrages(self):
            print(self.CreerOuvrages)
            suppr = input("Quel ouvrages voulez vous supprimer ?")
            listeOuvrages.pop(suppr)
            return listeOuvrages
    
    
    
    #RendreOuvrages permet de remettre des ouvrgaes rendu dans la liste d'ouvrages
        def RendreOuvrages (self):
            rendu =input("Quel est le nom du livre rendu ?")
            listeOuvrages.append(rendu)
            
            return listeOuvrages
    
    #création de la classe abonnés ou toutes les actions concernant les abonnés se passeront
    class Abonnes:
        def __init__(self, lyceens, enseignants):
            self.eleves = lyceens
            self.profs = enseignants
            self.question = questionEntree()
            self.creation = CreerCompte()
    
    
    #Méthode pour créer un compte si quelqu'un n'en possède pas
        def CreerCompte(self):
            listeComptes= []
            compte =input("Comment vous appelez vous ? (Ajouter Mrs ou Mme si vous etes un professeur)")
            listeComptes.append(compte)
        
            return listeComptes
    
    
    
    #Permet de rentrée de nouveaux abonnées dans la base de donées du CDI
        def questionEntree(self):
            listeAbonnes= []
            
            #demande si un compte est possédé ou non
            question_1 = int(input("Si vous êtes déja abonnés écrivez 1 sinon écrivez 2."))
            
            #si la personne est abonné 
            #demande si vous voulez prendre ou rendre un ouvrage
            if question_1 == 1:
                question_2 = int(input("Si vous voulez rendre un livre écrivez 1, si vous voulez prendre un livre écrivez 2."))
            
                #veut rendre un livre
                if question_2 == 1:
                    print(self.RendreOuvrages())
                #veut prendre un livre
                if question_2 == 2:
                    print(self.SupprimerOuvrages())
                return listeComptes and listeOuvrages
    
    
            #si la personne n'est pas abonné
            #demande si vous voulez prendre ou rendre un ouvrage
            elif question_1 == 2:
                print(self.creation())
            
                #demande si vous voulez prendre ou rendre un ouvrage
                if question_1 == 1:
                    question_2 = int(input("Si vous voulez rendre un livre écrivez 1, si vous voulez prendre un livre écrivez 2."))
            
                    #veut rendre un livre
                    if question_2 == 1:
                        print(self.RendreOuvrages())
                    #veut prendre un livre
                    if question_2 == 2:
                        print(self.SupprimerOuvrages())
                    return listeComptes and listeOuvrages
    
    
    #création de la classe prêt pour avoir les informations relatives aux prêt
    class pret:
        def __init__(self):
            pass
    
    
    
    
        #la classe OuvragesDetenus permet de savoir qui a empruntés quelle livre
        def OuvragesDetenus(self):
            pass
        
        
        #la classe Statistique nous dira quelle livre a était le plus empruntés
        def Statistique(self):
            pass
    
    
    
    
    
    
    
    
    livre_1 = Ouvrages()
    livre_2 = Ouvrages()
    livre_3 = Ouvrages()
    livre_4 = Ouvrages()
    livre_5 = Ouvrages()
    
    go = Ouvrages(livre_1, livre_2, livre_3, livre_4, livre_5)
    test = go.CreerOuvrages()
    print(test)
    
    
    
    #idée de livre a mettre: 
    #-livre_1 = le petit prince
    #-livre_2 = Odyssée
    #-livre_3 = Moby Dick
    #-livre_4 = Les Mille et Une Nuits
    #-livre_5 = Hamlet



    Voici un code et je n'arrive pas à comprendre d'où vient l'erreur (le programme n'est pas finis pour la dernière classe).

    L'erreur affiché est: name 'SupprimerOuvrages' is not defined
    Si vous voyez d'où vient mon erreur et que vous pouvez me la signaler je vous en remercierez.
    Cordialement.

    • Partager sur Facebook
    • Partager sur Twitter
      27 octobre 2022 à 22:45:25

      Manque des self. lignes 5 et 6... Pour le moment.
      • Partager sur Facebook
      • Partager sur Twitter

      Python c'est bon, mangez-en. 

        27 octobre 2022 à 23:23:01

        Bonjour, Merci d'indiquer un titre de sujet en rapport avec votre problématique.

        Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
        Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

        Pour plus d'informations, nous vous invitons à lire les règles générales du forum

        Mauvais titre

        Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

        Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

        De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

        Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

        Merci de modifier votre titre. Pour cela, éditez le premier message de votre sujet.

        (titre originel : Besoin d'aide pour une erreur)

        Liens conseillés

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          27 octobre 2022 à 23:37:21

          SLT !

          Installe python 3.11 et tu verras plus clairement d'où vient l'erreur ! Faut juste lire le traceback...

          https://docs.python.org/fr/3.11/whatsnew/3.11.html#new-features

          -
          Edité par Anonyme 27 octobre 2022 à 23:38:28

          • Partager sur Facebook
          • Partager sur Twitter
            28 octobre 2022 à 15:11:00

            pfiou plein d'erreurs de concept je crois:

            dans le __init__ de Ouvrage:

            • tu créés un ouvrage dans self.livre par l'appel à la fonction CreerOuvrage qui initialise une liste, et la remplit avec un livre (à chaque appel, la liste est réinitialiser (ligne 11); 
            • ensuite tu récupères dans self.supprimer le résultat de l'appel à SupprimerOuvrages, dans laquelle tu affiches la fonction (pas son résultat) CreerOuvrages, et tu essaie de retirer le titre saisi sans faire de vérification de sa présence (ne jamais faire trop confiance à la saisie d'un utilisateur)
            • enfin tu récupères dans self.RendreOuvrages le résultat de RendreOUvrage (attention, c'est le même nom, donc souci potentiel de réaffectation); cette fonction demande le nom d'un ouvrage que tu ajoutes à une liste (a priori non défini)

            Ensuite ligne 132, tu utilises une initialisation d'ouvrage qui n'existe pas (Ouvrages.__init__ n'attend aucun paramètre), mais tu voulais peut-être une liste d'ouvrages?)

            Pour Abonnes, il y a un peu près les mêmes soucis

            Ligne 20, tu as CreerOuvarges au lieu de CreerOuvrages 

            • Partager sur Facebook
            • Partager sur Twitter

            Besoin d'aide pour 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