Mini repertoire

Fermé
roro - 7 nov. 2020 à 10:04
 Utilisateur anonyme - 8 nov. 2020 à 12:08
Bonjour,
j ai un projet de mini repertoire assez dur pour mon niveau. 1ere NSI
je suis bloquer pour modifier une personne et voici mon programme
repertoire=[]

#sélectionner dans le menu
print("1-Ajouter une personne 2-Modifier une personne 3-Supprimer une personne 4-Quitter le programme")
choix=int(input("Quel numéro choisissez-vous ?"))

if choix==1:

personne1 = {}# creation du dico

personne1["nom"]=str(input("saisir un nom:"))

personne1["prenom"]=str(input("saisir un prenom:"))

personne1["num"]=str(input("saisir un numero:"))

repertoire.append(personne1)# ajout d'un element

print(repertoire)

elif choix==2:

changer=str(input("quel contact voulez vous modifier ?"))

changerquoi=str(input(" tapez 4 pour modifier le nom! tapez 5 pour modifier le prenom! tapez 6 pour modifier le numero!"))
L'objectif est de créer un répertoire dans lequel on mémorise le nom, le prénom et le numéro de téléphone.

Les informations sont mémorisées dans une liste de dictionnaire.

Au lancement du programme, l'agenda est vide et un menu permet à l'utilisateur d'ajouter, modifier ou supprimer une personne.

Après chaque traitement (ajouter, modifier et supprimer) l'agenda doit être affiché de nouveau.

Le schéma suivant détaille chaque partie du programme :

mini projet agenda cdcf1

Conseil de méthode :

- y aller pas à pas :

- mettre au point en premier ajouter une personne, puis passer à modifier...

- terminer par le menu

- rendre explicite votre programme pour un tiers :

- mettre des commentaires

- choisir des noms de variables explicites

- utiliser des fonctions pour structurer votre programme

- séparer les différentes parties par une ligne : #------------------------------------------------

Étape 1

Dans un premier temps vous répondez au cahier des charges en supposant que l'utilisateur est parfait : il saisit toujours les bonnes informations.

Il n'y a donc pas à vérifier par exemple si le n° de menu ou de personne est correct.

Étape 2

De nombreuses améliorations sont possibles, voici le cadre de ce que vous pouvez faire.

Pour l'affichage

- Juste avant d’afficher la liste des personnes, afficher le nombre de personnes - ex: 3 personnes

- Tester si l'agenda est vide, auquel cas afficher le message “L'agenda est vide”

Pour supprimer une personne

- tester le cas où la liste est vide, auquel cas afficher “aucun élève à supprimer, la classe est vide”

- tester le cas où le n° donné est négatif ou trop grand : afficher un message en conséquence

Pour modifier une personne par son nom

Afin de conserver votre première étape (modifier une personne par son n° d'indice), vous ajouterez un menu 4 afin de modifier une personne par son nom :

- demander à l'utilisateur de saisir un nom,

- le programme recherche la personne dans l'agenda

- si elle est trouvée : reprendre ce que vous aviez fait à l'étape 1

- si elle n’a pas été trouvée : afficher le message “nom personne inexistante dans l'agenda".




Configuration: Windows / Chrome 86.0.4240.111
A voir également:

53 réponses

Utilisateur anonyme
7 nov. 2020 à 16:16
Tu as répondu, sans réfléchir et surtout sans essayer

si tu lances ce code (juste ce code)
repertoire=[{"nom":"N1", "prenom":"P1", "num":1 }, {"nom":"N2", "prenom":"P2", "num":2 }, {"nom":"N3", "prenom":"P3", "num":3 }]  
def selectioncontact():
  print(repertoire)
  index = repertoire.index('e')
  print('The index of nom:', index)


selectioncontact()


Que se passe t il?
0
rien
0
apres je n ai jamais fait l'index je decouvre en meme temps
0
Utilisateur anonyme
7 nov. 2020 à 16:29
Rien?

Moi j'ai une erreur

0
pardon j ai une erreur aussi
0
Utilisateur anonyme
7 nov. 2020 à 16:33
apres je n ai jamais fait l'index je decouvre en meme temps

OK

repertoire[0] retourne l'élément à l'index 0 du repertoire => ce que du dois faire avec un index à faire saisir par l'utilsateur

repertoire.index('machin') retourne la valeur de l'index de 'machin', si machin existe. Puisque tu ne l'as vu, c'est sans doute pas ce que ton prof attend de toi.
0
si il nous demande Afin de conserver votre première étape (modifier une personne par son n° d'indice), vous ajouterez un menu 4 afin de modifier une personne par son nom :

- demander à l'utilisateur de saisir un nom,

- le programme recherche la personne dans l'agenda

- si elle est trouvée : reprendre ce que vous aviez fait à l'étape 1

- si elle n’a pas été trouvée : afficher le message “nom personne inexistante dans l'agenda".
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
def modifierunepersonne():
  print(repertoire)
  changer=str(input("quel contact voulez vous modifier ?"))

  changerquoi=str(input(" tapez 4 pour modifier le nom! tapez 5 pour modifier le prenom! tapez 6 pour modifier le numero!"))

peut etres partir comme cela sauf qu'il manque le choix de l indice au debut
0
Utilisateur anonyme
7 nov. 2020 à 16:45
Ha oui, je n'avais pas relu l'énoncé.
Effectivement dans un premier temps, tu dois faire la modification par l'index.
La recherche par nom viendra tout à la fin.

Donc la fonction qui sélectionne le contact doit demander l'index à l'utilisateur et transmettre le contact en question
0
comment faire
0
Utilisateur anonyme
7 nov. 2020 à 17:08
Cette fonction n'a que 2 choses à faire.
Dans tes précédents posts tu m'a montré que sais utiliser tout ce qu'il faut pour le faire.
Essaye
0
juste je dois rendre se projet pour lundi pourriez-vous me faire la fonction modifier s'il vous plait je ne vous embête plus après
0
Utilisateur anonyme
7 nov. 2020 à 17:33
Non, le but d’un exercice c’est que tu saches faire par toi-même.
Ce que tu as réussi jusqu’à là tu ne le dois qu’à toi.
Et en plus tu t’en souviendras.

Alors que si je te donne une solution toute faite, d’une part, j’irai à l’encontre des règles de ce forum, mais en plus cela ne te serai pas profitable.

Donc un pas après l’autre.
D’abord la fonction qui demande un index et retourne le contact qui correspond.
0
Neo_2014 Messages postés 32 Date d'inscription jeudi 26 mars 2020 Statut Membre Dernière intervention 10 février 2021 1
8 nov. 2020 à 03:17
continuer = 1
repertoire=[]

def ajouterunepersonne():
  contact = {}# creation du dico
  contact["nom"]=input("saisir un nom:\n")
  contact["prenom"]=input("saisir un prenom:\n")
  contact["num"]=input("saisir un numero:\n")
  return contact

def modifier(rep):
    crep = rep
    suite = 1
    per = input('Donnez le prénom de la personne à modifier:\n')
    if per is None:
        per = ' '
    rep = sup(rep, per, 1)
    if rep == False:
        print("Il n'y a aucune personne de ce nom-là")
        suite = 0
        rep = crep
    if suite == 1:
        contact = {}# creation du dico
        contact["nom"]=input("saisir un nouveau nom:\n")
        contact["prenom"]=input("saisir un nouveau prenom:\n")
        contact["num"]=input("saisir un nouveau numero:\n")
        rep.append(contact)
        print("personne bien modifiée")
    return rep
    

def sup(rep, per = None, m = 0):
    nwrep = []
    if rep:
        supp = False
        if per is None:
            per = input('Donner le prénom de la personne à suprimer:\n')
        for e in rep:
            if e['prenom'] == per:
                supp = True
            else:
                nwrep.append(e)
        if m == 0:
            if supp == False:
                print("Il n'y a aucune personne de ce nom là")
            else:
                print('La personne a bien été supprimée')
        if m == 1:
               if supp == False:
                   return False
        rep = nwrep
    return rep
        

while continuer:
    print("1-Ajouter une personne\n2-Modifier une personne\n3-Supprimer une personne\n4-Quitter le programme")
    choix=int(input("Quel numéro choisissez-vous ?\n"))
    if choix == 1:
        repertoire.append(ajouterunepersonne())
    elif choix == 2:
        repertoire = modifier(repertoire)
    elif choix == 3:
        repertoire = sup(repertoire)
    elif choix == 4:
        print(repertoire)
        print("Merci d'avoir utilisé ce programme !")
        continuer = 0
    else:
        print("Le numéro entré n'est pas dans les choix.")

Voilà, je pense que tu peux rendre ça mais jette un oeil pour être sûr que c'est ce qu'il te fallait.
0
Utilisateur anonyme
8 nov. 2020 à 09:43
Bonjour Néo,

non je ne suis pas ton père, ni le tien.

Mais donner une solution toute faite, qui ne correspond pas à l'énoncé, ce n'est pas aider.
Si roro montre ce code à son prof, il va juste se prendre un 0.

Aider c'est faire réfléchir le demandeur pour qu'il trouve sa solution
0
moi je veux bien continuer a reflechir mais on pourrait simplifier le code de neo pour qu'il soit plus simple?
0
Utilisateur anonyme
8 nov. 2020 à 12:08
C'est ton choix, mais je ne t'aiderais pas dans cette voie
0