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

merci beaucoup neo grace a toi et whismeril j ai compris
1
Utilisateur anonyme
8 nov. 2020 à 09:39
En fait non, Néo t'as donné sa solution toute faite.
  • Effet 1, tu n'as pas réfléchi
  • Effet 2, ton prof le verra de suite car elle va au-delà de ce qui t'es demandé.


Ce faisant, il ne t'a pas aidé et en plus il a enfreint les règles de ce forum

Maintenant, 2 choix s'offrent à toi,
  • risquer de te faire saquer par ton prof pour avoir triché. Il peut par exemple te donner un autre exercice à faire en classe qui soit du niveau du code de Néo et là que feras tu?
  • continuer à réfléchir par toi même étape par étape pour arriver à ton résultat
0
Utilisateur anonyme
7 nov. 2020 à 10:37
Bonjour

il y a un truc primordial en python : l'indentation.

Or copier coller un code dans un forum supprime l'indentation.
C'est pour cela que CCM, comme tout forum de code qui se respecte, dispose d'un outil dédié => les balises de codes.
Voir une explication, à lire attentivement et en entierhttps://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Quand tu auras reposté ton code, dans cette discussion, de façon à se qu'on puisse le lire, on pourra commencer à essayer de t'aider.
0
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!"))
0
Utilisateur anonyme
7 nov. 2020 à 11:11
Ok

voyons ton énoncé, je mets une partie entre balise de code, afin de pouvoir commenter

Conseil de méthode :

- y aller pas à pas :

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

- terminer par le menu //apparement tu as commencé 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 //et tu n'as pas écrit de fonction(s)

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


Je te propose donc d'écrire un code qui va demander la saisie de 3 personnes avec au moins une fonction et sans menu.

Alors oui, tu demandes de l'aide pour la modification, mais pour modifier, il faut avoir des données.
Comme tu n'as pas respecté les consignes, en l'état quand tu arrives dans le choix tu n'as pas de données à modifier.

0

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

Posez votre question
repertoire=[]

def ajouterunepersonne():
  personne1=str(input("saisir un nom"))
  personne1=str(input("saisir un prenom"))
  personne1=int(input("saisir un num "))
  personne = {'nom':personne1, 'prenom':personne1,'numero':personne1}
  repertoire.append(personne1)
  print(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:
 ajouterunepersonne
print(repertoire)

if choix==2:
  print(repertoire)


j avais fait quelque chose comme cela au début ou je définis la fonction ajouterunepersonne
0
Utilisateur anonyme
Modifié le 7 nov. 2020 à 11:24
Je t'ai demandé 3 personnes et pas de menu.
Ce que tu montres ne répond pas à ça.

C'est assez exaspérant cette manie de votre génération à n'en faire qu'à votre tête.
Si tu viens demander de l'aide, celui (celle) qui va essayer de te guider, va le faire par étapes, afin d'estimer ton niveau (que tu dis toi même trop bas pour cet exercice) et amener le demandeur plus ou moins vite à trouver une solution.

Le week end dernier, j'ai suivi 3 questions en Python, par des jeunes de ton age qui ont duré plusieurs jours, parce que systématiquement, ils n'en faisaient qu'à leur tête et ne répondait pas à ce qu'on demandait.
Un seul a finit par appliquer et arriver rapidement à une solution. Les 2 autres sont en plan.
Je ne suis pas d'humeur, à te répéter la même chose pendant plusieurs jours.

Merci donc de répondre à ma demande
0
Je te propose donc d'écrire un code qui va demander la saisie de 3 personnes
c'est a dire 3 personnes
je demande le nom prenom et num de 3 personnes?
0
Utilisateur anonyme
7 nov. 2020 à 11:32
oui
0
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)

voila est ce bon ou pas ?
0
Utilisateur anonyme
7 nov. 2020 à 11:44
C'est pas faux, mais c'est pas bon.

D'abord, si j'exécute ce code tel quel, il ne se passe rien.
Sais tu pourquoi?

Si non, on va travailler sur ce pourquoi, pas la peine de lire la suite de ce message.

Si oui.
Montre moi un code qui calcule le cosinus de 1, 2 et 3.
0
non
0
mais je pense comprendre car au debut je marque () mais je return les nom prenom et num
0
Utilisateur anonyme
7 nov. 2020 à 11:53
Dans ce code
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)


Tu définis des fonctions, mais tu ne t'en sers pas.
0
def ditBonjour(nom, age):
	phrase = f"Bonjour {nom}, vous avez {age} ans."
ditBonjour('Baptiste',14)
ditBonjour('Ninon',11)
ditBonjour('Titouan',7)

je vois comment utiliser des fonctions de se type mais Comment utiliser celle précédemment je ne sais pas
0
Utilisateur anonyme
7 nov. 2020 à 12:00
Pourtant dans le code que tu as posté à 11h15 (message 10), tu as utilisé la fonction ajouterunepersonne.

0
celui de 11h15 ne marcher pas et j ai utiliser un menu pour apres aller dans ma fonction meme si celle la ne marcher pas
0
1-Ajouter une personne 2-Modifier une personne 3-Supprimer une personne 4-Quitter le programme
Quel numéro choisissez-vous ?1
[]

voici la reponse de la console
0
Utilisateur anonyme
7 nov. 2020 à 12:39
Pour appeler une fonction sans paramètre, c'est pareil que pour une fonction avec paramètres.
Sauf qu'on ne met pas de paramètre
0
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


comme cela
0
dachiasse Messages postés 1709 Date d'inscription samedi 12 septembre 2020 Statut Membre Dernière intervention 13 mai 2021 149
8 nov. 2020 à 03:46
Salut,
Si tu veux que les fonctions soient exécutées (appelées) en ligne 21,22,23, il faut les parenthèses.
ajouterunepersonne()
0
Utilisateur anonyme
7 nov. 2020 à 14:15
Oui, ce code fait littéralement ce que je t'ai demandé.

Mais j'aimerais mieux, d'une part en l'état, les personnes saisies ne sont pas stockées dans le repertoire (on y reviendra juste après).
Et d'autre part, ça n'est pas optimisé.

Revenons au cosinus (c'est un exemple parmi d'autres).
Poste un code qui calcule le cosinus de 1, puis celui de 2 et celui de 3 (c'est des radians).

0
il suffit de marquer math.cos(1) dans la console
0