Bonjour, je dois réaliser un programme python pour faire un répertoire téléphonique (enregistré dans un fichier txt), celui-ci doit avoir plusieurs fonctionnalités : - ajouter un nom avec un numéro associé au répertoire - chercher dans le répertoire si un nom qu'entre l'utilisateur (avec input)y est présent, si non, retourner "inconnu", et si oui, retourner le numéro associé. Mais je ne sais pas pourquoi, quoi que j'entre, le programme me retourne systématiquement "inconnu". quelqu'un pourrait -il m'aider ? merci d'avance. (je peux joindre des screens du programme si besoin)
Lista de comentários
Réponse:
#Fonction pour ajouter un contact
def add_contact(name, number):
with open("contacts.txt", "a") as f:
f.write(f"{name}:{number}\n")
def is_contact(name,affichage):
is_contact=False
with open("contacts.txt", "r") as f:
for line in f:
contact_name, _ = line.strip().split(":")
if(contact_name == name):
is_contact =True
if(not is_contact and affichage):
print("Inconnu !")
return is_contact
#Fonction pour trouver un contact en fonction de son nom
def find_contact(name):
if(is_contact(name,True)):
with open("contacts.txt", "r") as f:
lines = f.readlines()
for line in lines:
contact_name, number = line.strip().split(":")
if (contact_name == name):
return number
#Fonction pour modifier un contact
def modify_contact(name, number):
if(is_contact(name,True)):
# lire le fichier en mémoire
with open("contacts.txt", "r") as f:
lines = f.readlines()
# ouvrir le fichier en écriture
with open("contacts.txt", "w") as f:
lines = f.readlines()
# pour chaque ligne du fichier
for line in lines:
contact_name, _ = line.strip().split(":")
# Si la ligne contient le nom à modifier
if contact_name == name:
# écrire la ligne modifiée
f.write(f"{name}:{number}\n")
else:
# écrire la ligne inchangée
f.write(line)
#Fonction pour supprimer un contact
def remove_contact(name):
if(is_contact(name,True)):
with open("contacts.txt", "r") as f:
lines = f.readlines()
with open("contacts.txt", "w") as f:
for line in lines:
contact_name, number = line.strip().split(":")
if contact_name != name:
f.write(line)
#Fonction pour supprimer tous les contacts
def remove_all_contacts():
open("contacts.txt", "w").close()
print("1. Ajouter un contact")
print("2. Modifier un contact")
print("3. Voir le numéro d'un contact")
print("4. Supprimer un contact")
print("5. Supprimer tous les contacts")
print("6. Quitter")
print()
quitter=False
while (not quitter):
choice = input("Entrez votre choix : ")
if choice == "1":
name = input("Entrez le nom du contact : ")
number = input("Entrez le numéro de téléphone : ")
add_contact(name, number)
print("Contact ajouté avec succès!")
print()
elif choice == "2":
name = input("Entrez le nom du contact : ")
number = input("Entrez le nouveau numéro de téléphone : ")
modify_contact(name, number)
print("Contact modifié avec succès!")
print()
elif choice == "3":
name = input("Entrez le nom du contact : ")
print(find_contact(name))
print()
elif choice == "4":
name = input("Entrez le nom du contact à supprimer : ")
remove_contact(name)
if(is_contact(name,False)):
print("Contact supprimé avec succès!")
print()
elif choice == "5":
remove_all_contacts()
print("Tous les contacts ont été supprimés!")
print()
elif choice == "6":
print("Au revoir!")
quitter = True
else:
print("Choix non valide, veuillez réessayer.")