Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3085

Correction code Python

Newsgroups fr.comp.lang.python
Subject Correction code Python
From Hugues21 <nospam_leon.muselli@live.fr.invalid>
Organization !No_Organization!
Message-ID <jOCdnUlQcdSqpGTHnZ2dnUU7983NnZ2d@giganews.com> (permalink)
Date 2018-05-14 02:22 -0500

Show all headers | View raw


Bonjour,
J'aimerais que vous m'aidiez à corriger ce code :

import cPickle as pickle
import os.path

NOMFIC_SAUVE = "carnet.pickle"
QUIT_CONFIRMER = "Vous confirmez vouloir quitter (O/N) ?"
INSTRUCTIONS = """

*********************************************
        Application Carnet d'Adresses
                    V 1.0                    
*********************************************

Tapez une des quatre touches suivantes :
A pour Ajouter une personne
L pour la Liste des fiches du carnet
I pour revoir ces Instructions
Q pour Quitter. """
PATRON_LISTE = "%s %s Naissance: %s Email: %s"

class CarnetAdr(object):
    def __init__(self):
        self.gens =[]

    def ajouter_fiche(self, fiche_nouvo):
        self.gens.append(fiche_nouvo)

    def sauver(self):
        with open(NOMFIC_SAUVE, 'w') as ficow:
            pickle.dump(self, ficow)

class FicheAdr(object):
    def __init__(self, prenom=None, nomfami=None, datenaiss=None,
courriel=None):
        self.prenom = prenom
        self.nomfami = nomfami
        self.datenaiss = datenaiss
        self.courriel = courriel

    def __repr__(self):
        patron = "FicheAdr(prenom ='%s',"+
                 "nomfami ='%s',"+
                 "datenaiss ='%s',"+
                 "courriel ='%s')"
        return patron%(self.prenom,self.nomfami,self.datenaiss,self.courriel)

class Kontroleur(object):
    def __init__(self):
        self.carnet_adr = self.charger()
        if self.carnet_adr is None:
            self.carnet_adr = CarnetAdr()
        self.gerer_menu()

    def charger(self):
        if os.path.exists(NOMFIC_SAUVE):
            with open(NOMFIC_SAUVE, 'r') as ficor:
                return pickle.load(ficor)
        else:
            return None

    def gerer_menu(self):
        print(INSTRUCTIONS)
        while True:
            cmd = raw_input("n(a)jout'(l)iste,(i)nstr.,(q)uitter : ")
            if cmd == "a":
                self.ajouter_fiche()
            elif cmd == "q":
                if confirmer_quitter():
                    print("Sauvegarde")
                    self.carnet_adr.sauver()
                    print("Fin de l'application")
                    break
            elif cmd == "i":
                print(INSTRUCTIONS)
            elif cmd == "l":
                self.lister_fiches()
            else:
                modele = "*** Touche de commande inconnue (%s) !"
                print(modele%cmd)
            
    def ajouter_fiche(self):
        print("Ajout d'une fiche dansle carnet")
        print("Description de la personne :")
        prenom = raw_input("Son prenom ? ")
        if prenom == "q":
            print("On abandonne !")
            return
        nomfami = raw_input("Son nom de famille ? ")
        if nomfami == "q":
            print("On abandonne !")
            return
        M_DATENAISS = "Sa date de naissance (Jour/Mois/An) ? "
        datenaiss = raw_input(M_DATENAISS)
        if datenaiss == "q":
            print("On abandonne !")
            return
        courriel = raw_input("Son @dresse ? ")
        if courriel == "q":
            print("On abandonne !")
            return
        nfiche = FicheAdr(prenom, nomfami, courriel, datenaiss)
        self.carnet_adr.ajouter_fiche(nfiche)
        ncontact = (prenom, nomfami)
        print("Nouvelle fiche faite pour %s %s. n"%ncontact)

    def lister_fiches(self):
        print("nListe des personnes")
        for indice, e in enumerate(self.carnet_adr.gens):
            contact = (e.prenom, e.nomfami, e.datenaiss, e.courriel)
            fiche = PATRON_LISTE%contact
            print("%s: %s"%(indice + 1, fiche))

def confirmer_quitter():
    confi = raw_input(QUIT_CONFIRMER)
    if confi == 'n':
        return False
    else:
        return True

if __name__ == "__main__":
    controleur = Kontroleur()



Quand j'execute ce programme, il m'affiche :

Traceback (most recent call last):
  File "Carnet d'Adresse WIP.py", line 119, in <module>
    controleur = Kontroleur()
  File "Carnet d'Adresse WIP.py", line 47, in __init__
    self.carnet_adr = self.charger()
  File "Carnet d'Adresse WIP.py", line 55, in charger
    return pickle.load(ficor)
EOFError

Back to fr.comp.lang.python | Previous | NextNext in thread | Find similar


Thread

Correction code Python Hugues21 <nospam_leon.muselli@live.fr.invalid> - 2018-05-14 02:22 -0500
  Re: Correction code Python Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2018-05-14 21:52 +0200
  Re: Correction code Python yves <yves@free.invalid> - 2018-05-14 20:05 +0000

csiph-web