Mini repertoire
roro
-
Utilisateur anonyme -
Utilisateur anonyme -
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".
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:
- Mini repertoire
- Opera mini pc - Télécharger - Navigateurs
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Rohos mini drive - Télécharger - Chiffrement
- Meilleur mini pc - Guide
- Dameware mini remote control - Télécharger - Web & Internet
53 réponses
Alors essayons autrement (à noter que je préfère largement "je ne sais pas" à une réponse au hasard)
D'abord, il manquait les parenthèses pour l'appel des fonctions, je l'ai corrigé dans le code de ce message.
Ce code définit 3 fonctions qui font la même chose.
Ces 3 fonctions sont appelées successivement.
Supposons que tu doives presser 3 oranges, utilises tu 3 presses agrumes?
def ajouterunepersonne():
nomcontact1=str(input("saisir un nom"))
prenomcontact1=str(input("saisir un prenom"))
numerocontact1=int(input("saisir un num "))
return(nomcontact1,prenomcontact1,numerocontact1)
def ajouterunepersonne2():
nomcontact2=str(input("saisir un nom"))
prenomcontact2=str(input("saisir un prenom"))
numerocontact2=int(input("saisir un num "))
return(nomcontact2,prenomcontact2,numerocontact2)
def ajouterunepersonne3():
nomcontact3=str(input("saisir un nom"))
prenomcontact3=str(input("saisir un prenom"))
numerocontact3=int(input("saisir un num "))
return(nomcontact3,prenomcontact3,numerocontact3)
ajouterunepersonne()
ajouterunepersonne2()
ajouterunepersonne3()
D'abord, il manquait les parenthèses pour l'appel des fonctions, je l'ai corrigé dans le code de ce message.
Ce code définit 3 fonctions qui font la même chose.
Ces 3 fonctions sont appelées successivement.
Supposons que tu doives presser 3 oranges, utilises tu 3 presses agrumes?
def ajouterunepersonne():
nomcontact=str(input("saisir un nom"))
prenomcontact=str(input("saisir un prenom"))
numerocontact=int(input("saisir un num "))
nomcontact1=str(input("saisir un nom"))
prenomcontact1=str(input("saisir un prenom"))
numerocontact1=int(input("saisir un num "))
nomcontact2=str(input("saisir un nom"))
prenomcontact2=str(input("saisir un prenom"))
numerocontact2=int(input("saisir un num "))
return(nomcontact,prenomcontact,numerocontact,nomcontact1,prenomcontact1,numerocontact1,nomcontact2,prenomcontact2,numerocontact2)
ajouterunepersonne()
il n y a pas un moyen de mettre chaque contact dans une sorte de classement contact1:nom,prenom,num, contact2:nom,prenom,num
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionil n y a pas un moyen de mettre chaque contact dans une sorte de classement
ben si et paradoxalement, en faisant ton exercice à "l'envers" tu en était plus proche que maintenant.
la fonction ajouterunepersonne porte bien son nom. Si elle en ajoute 2, elle n'est pas cohérente.
Et quand tu auras besoin de n'ajouter qu'une seule personne, elle ne sera pas adatpée.
Un fonction c'est un bout de code qui sert à faire quelque chose.
Tout comme le presse agrume sert à presser un agrume. Cela dit le presse agrume peut servir plusieurs fois.
Vois tu ce que j'essaye de te faire comprendre?
oui il faut essayer de reutiliser les fonctions le nombre de fois que l on veut ajouter des personnes dans le repertoire
repertoire=[]
def ajouterunepersonne():
contact1 = {}# creation du dico
contact1["nom"]=str(input("saisir un nom:"))
contact1["prenom"]=str(input("saisir un prenom:"))
contact1["num"]=str(input("saisir un numero:"))
repertoire.append(contact1)# ajout d'un element
print(repertoire)
ajouterunepersonne()
ajouterunepersonne()
ajouterunepersonne()
j ai bien compris je crois
Parfait.
C'est exactement ça, et aussi exactement ce que ton prof veut dire pas "y aller petit à petit".
Tu viens à la fois d'écrire une fonction qui ajoute une personne, de la tester (puisque tu l'appelles) et de t'en servir un nombre de fois prédéfini.
Maintenant, ton dictionnaire contient 3 personnes.
Tu dois en modifier 1, pour cela il y a 2 grandes étapes.
Vois tu les quelles?
C'est exactement ça, et aussi exactement ce que ton prof veut dire pas "y aller petit à petit".
Tu viens à la fois d'écrire une fonction qui ajoute une personne, de la tester (puisque tu l'appelles) et de t'en servir un nombre de fois prédéfini.
Maintenant, ton dictionnaire contient 3 personnes.
Tu dois en modifier 1, pour cela il y a 2 grandes étapes.
Vois tu les quelles?
il faut observer le repertoire selectionner l'element a modifier puis supprimer et ajouer l'element correctement ecrit
Là c'est en 3 étapes.
on peut réduire à
Commençons par la fonction qui sert à sélectionner un contact.
Tu vas essayer d'écrire cette fonction, et l'appeler à la suite des 3 saisies
Après cet appel le contact sélectionné sera affiché
on peut réduire à
- sélectionner l'élément
- le modifier
Commençons par la fonction qui sert à sélectionner un contact.
Tu vas essayer d'écrire cette fonction, et l'appeler à la suite des 3 saisies
Après cet appel le contact sélectionné sera affiché
repertoire=[]
def ajouterunepersonne():
contact1 = {}# creation du dico
contact1["nom"]=str(input("saisir un nom:"))
contact1["prenom"]=str(input("saisir un prenom:"))
contact1["num"]=str(input("saisir un numero:"))
repertoire.append(contact1)# ajout d'un element
print(repertoire)
ajouterunepersonne()
ajouterunepersonne()
ajouterunepersonne()
def modifierunepersonne():
print(repertoire)
repertoire.get('nom')
modifierunepersonne()
je vois comment le faire on la traviller en cours mais je ne sait pas l appliquer.
est ce bon
Par soucis de clarté , on regroupe les définitions d'un coté et le code "principal"
Là ça fait
Quand tu en auras 50 de chaque, ce sera complètement illisible.
D'ailleurs dans ton énoncé, il t'est demandé de bien séparer chaque partie du programme.
Ensuite, je t'ai demandé de travailler sur la fonction qui sélectionne un contact, l'appeler modifierunepersonne n'est pas cohérent avec son but.
Enfin, quel est le type de repertoire? La fonction get existe t elle pour ce type?
Là ça fait
- une définition
- un peu de code principal
- une définition
- un peu de code principal
Quand tu en auras 50 de chaque, ce sera complètement illisible.
D'ailleurs dans ton énoncé, il t'est demandé de bien séparer chaque partie du programme.
Ensuite, je t'ai demandé de travailler sur la fonction qui sélectionne un contact, l'appeler modifierunepersonne n'est pas cohérent avec son but.
Enfin, quel est le type de repertoire? La fonction get existe t elle pour ce type?