Répertoire téléphonique

Cette formation aborde les bases de la programmation informatique.

Modérateurs : Équipe sillages.info, David ROCHE

thomas sabater
Messages : 2
Enregistré le : dim. 17 déc. 2017 20:19

Répertoire téléphonique

Messagepar thomas sabater » dim. 17 déc. 2017 20:47

Bonsoir, j’ai réaliser le répertoire téléphonique et il fonctionne très bien. Serait-il possible d’avoir une correction pour pour si j’aurais peut faire différemment ?
Il m’est impossible de vous joindre le fichier que j’ai réalisé car j’ai des problèmes de connexion. Dans l’attente d’une réponse de votre part,
Bonne soirée
Thomas

Gérard DOUYERE
Messages : 5
Enregistré le : lun. 18 déc. 2017 17:48

Re: Répertoire téléphonique

Messagepar Gérard DOUYERE » lun. 25 déc. 2017 18:52

Bonsoir Thomas,
Si cela peut t'intéresser, voici ma deuxième version du code.
La première était plus ambitieuse mais comportait également trop d'erreurs !
Entre temps j'ai découvert la commande .index() qui permet de récupérer l'indice d'une chaîne dans une liste. Très pratique pour obtenir le numéro de téléphone associé à un nom.

As-tu un meilleur score en nombre de lignes?
A + et bonnes fêtes !
gérard


def menu():
print('0. Quitter')
print('1. Ecrire dans le repetoire')
print('2. Rechercher dans le repertoire')
global choix
choix = raw_input('Votre choix ? : ')
choix = int(choix)
return choix

def ecriture():
nom=raw_input('Entrez un nom : ')
numero=raw_input('Entrez son numero de telephone : ')
monFichier=open('fichier.txt','a')
monFichier.write(nom)
monFichier.write('\n')
monFichier.write(numero)
monFichier.write('\n')
monFichier.close()
again=raw_input('Voulez-vous entrer un autre nom ? o/n')
if again=='o':
ecriture()


def lecture(x):
fichier=open('fichier.txt','r')
rep=[]

for ligne in fichier:
ligne=ligne.strip('\n')
rep.append(ligne)

if x in rep:
print('{0} est dans le repetoire, '.format(x)),
indice = rep.index(x)
print('son numero de telephone est {}'.format(rep[indice + 1]))

else:
again=raw_input('Ce nom n\'est pas au repertoire, voulez-vous le rentrer ? o/n')
if again=='o':
ecriture()

# Point d'entree du script

menu()
if (choix)==1:
ecriture()
elif (choix)==2:
nom_recherche=raw_input('quel nom recherchez-vous ? : ')
lecture(nom_recherche)
elif (choix)==0:
print('Bye bye so long boy')

thomas sabater
Messages : 2
Enregistré le : dim. 17 déc. 2017 20:19

Re: Répertoire téléphonique

Messagepar thomas sabater » dim. 31 déc. 2017 12:13

Bonjour Gérard,
Je trouve votre programme très intéressant et grâce à vous j'ai peut modifier mon programme qui est maintenant plus rapide.
juste un petit conseil si voulez gagner des liges:
Au lieu d'ecrire :
monFichier=open('fichier.txt','a')
monFichier.write(nom)
monFichier.write('\n')
monFichier.write(numero)
monFichier.write('\n')
monFichier.close()

Pourquoi ne pas écrire:
monFichier=open('fichier.txt','a')
monFichier.write(nom+'\n')
monFichier.write(numero+'\n')
monFichier.close()

J'espère que mon conseil vous sera utile :D, Bonnes fêtes
Thomas

Gérard DOUYERE
Messages : 5
Enregistré le : lun. 18 déc. 2017 17:48

Re: Répertoire téléphonique

Messagepar Gérard DOUYERE » dim. 31 déc. 2017 13:26

Merci pour ta réponse et les conseils de concatenation de lignes.
Je viens de terminer le script du QCM.
Qui aurait envie de comparer avec le sien ?
Cordialement à tous.

Marie Feuillassier
Messages : 2
Enregistré le : sam. 5 mai 2018 18:36

Re: Répertoire téléphonique

Messagepar Marie Feuillassier » sam. 5 mai 2018 18:39

Bonjour,
Voici mon programme pour le répertoire téléphonique. Le hic est que je n'arrive pas à répondre que le contact est inconnu car dans la boucle for de la fonction lecture, il met autant de "contact inconnu" que de lignes à lire. Ainsi j'ai retiré cette option.

def menu():
print("0-quitter");
print("1-écrire dans le répertoire");
print("2-rechercher dans le répertoire");
global x
x=raw_input("Quel est votre choix: ")
x=int(x)
return x
def ecriture():
nom=raw_input("entrer un nom: ");
prenom=raw_input("entrer un prénom: ");
numero=raw_input("entrer un numéro de téléphone: ");
fichier=open('répertoire téléphonique','a');
fichier.write(nom+" "+prenom+" "+numero+"\n");
fichier.close();
print('contact enregistré')
again=raw_input("voulez-vous entrer un autre contact? Répondez par oui ou non en minuscules: ")
if again=="oui":
ecriture()
else:
menu()
def lecture():
recherche=raw_input("quel nom du répertoire cherchez-vous?: ");
fichier=open('répertoire téléphonique',"r")
for line in fichier:
if recherche in line:
print(line)
encore=raw_input("voulez-vous rechercher une autre personne? Répondez par oui ou non en minuscules: ")
if encore=="oui":
lecture()
else:
menu()
def exercice():
while x>=0:
if x==0:
menu()
elif x==1:
ecriture()
else:
lecture()
menu()
exercice()

Luciad46
Messages : 1
Enregistré le : lun. 9 sept. 2019 16:26

Re: Répertoire téléphonique

Messagepar Luciad46 » lun. 9 sept. 2019 16:30

thomas sabater a écrit :Bonjour Gérard,
Je trouve votre programme très intéressant et grâce à vous j'ai peut modifier mon programme qui est maintenant plus rapide mutuelle senior.
juste un petit conseil si voulez gagner des liges:
Au lieu d'ecrire :
monFichier=open('fichier.txt','a')
monFichier.write(nom)
monFichier.write('\n')
monFichier.write(numero)
monFichier.write('\n')
monFichier.close()

Pourquoi ne pas écrire:
monFichier=open('fichier.txt','a')
monFichier.write(nom+'\n')
monFichier.write(numero+'\n')
monFichier.close()

J'espère que mon conseil vous sera utile :D, Bonnes fêtes
Thomas

Très intéressant, mais plutôt compliqué aussi car je l'utilise pour des logiciels d'état civil et ce n'est en aucun cas de tarte.


Retourner vers « Programmation en Python »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité