Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3085
| 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 |
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 | Next — Next in thread | Find similar
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