Exo dictionnaire python nsi première

Aurelgkk Messages postés 4 Statut Membre -  
Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour je suis un eleve de nsi et j'ai cet exercice à rendre mais je ne le comprends absolument pas. Merci d'avance a ceux qui m'aideront

Exercice 2 : dépouillement d'une urne
A l'issue d'une élection à scrutin uninominal (un seul nom par bulletin), on récupère un tableau contenant tous les noms inscrits sur les bulletins trouvés dans
l'urne.
Afin de déterminer le vainqueur de l'élection, en un seul parcours des bulletins, on souhaite créer un dictionnaire qui à chaque nom contenu dans l'urne associe
le nombre de bulletins correspondant et se servir de ce dictionnaire pour déterminer le vainqueur. Pour ce faire, on va :
créer une fonction incr_dico() qui rajoute à un dictionnaire passé en argument une clé (elle aussi passée en argument)associée à la valeur 1 si cette clé
n'est pas déjà présente dans le dictionnaire , sinon, incrémente de 1 la valeur associée à cette clé.
créer une fonction depouillement() qui prend la liste des bulletins en argument, construit le dictionnaire et retourne le vainqueur.

In [ ]: bulletins=["Martin","Paul","Pierre","Jacques","Toto","Marie","Paul","Pierre","Jacques","Toto","Toto"]
def incr_dico(dico,cle):
 """ Entrée : un dictionnaire dico
 une clef cle
 Sortie : rien (c'est une procédure qui modifie le dico existant)
 Effet :
 - si cle est une clef de dico, la valeur de cle est augmentée de 1
 - sinon cle est insérée dans dico associée à la valeur 1
 """
 #
 # à compléter
 #

def depouillement(bulletins):
 """ Entrée : une liste bulletins
 Sortie : une chaîne de caractères : vainqueur
 Effets :
 - construit le dictionnaire des noms-nb de bulletins
 - détermine le vainqueur
 """
 dico = {}
 ## création du dictionnaire
 #
 # à compléter
 #

 nb_voix_max = 0
 vainqueur=""
 ## détermination du vainqueur
 #
 # à compléter
 #

 return vainqueur
print("le vainqueur est : ",depouillement(bulletins))

6 réponses

  1. Aurelgkk Messages postés 4 Statut Membre
     
    Bonjour, en effet la consigne indique bien quil faut cree une fonction incr_dico() mais je ne sais pas du tout comment faire
    0
  2. Aurelgkk Messages postés 4 Statut Membre
     
    Voila ou j'en suis, pour les fonction incr_dico, j'ai tester la fonction mais elle ne marche pas pouvez m'aider svp

    def incr_dico(dico,cle):
     """ Entrée : un dictionnaire dico
     une clef cle
     Sortie : rien (c'est une procédure qui modifie le dico existant)
     Effet :
     - if cle est une clef de dico, la valeur de cle est augmentée de 1
     - sinon cle est insérée dans dico associée à la valeur 1 """
     
     un_dictionnaire_dico={"cle":"valeur"}
     if cle=un_dictionnaire_dico
         valeur "cle" = +1
     else "cle" = dico valeur 1
    0
  3. Aurelgkk Messages postés 4 Statut Membre
     
    Je ne comprend pas egalement "entre,sortie,effet" qui sont dans les commentaire du code.
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Il faut définir le dictionnaire en dehors de la fonction comme pour les bulletins.

    Ensuite, dans la fonction tu lui passe, en paramètres, le dictionnaire ainsi que la "clé" que tu veux ( ça c'est l'entrée.. ) soit lui ajouter .. soit, si elle existe déjà dans le dictionnaire, l'incrémenter de 1.(ça c'est l'effet )

    Pour vérifier si une "clé" existe dans le dictionnaire, tu dois utiliser la méthode has_key
    https://www.geeksforgeeks.org/python-dictionary-has_key/

    Pour ajouter un élément à ton dictionnaire, tu peux faire comme ceci
    https://www.w3schools.com/python/gloss_python_dictionary_add_item.asp

    Pour changer la valeur dans d'un élément dans un dictionnaire
    https://www.w3schools.com/python/gloss_python_change_dictionary_item.asp

    A noter que je ne code pas en python.... mais le langage est tellement simple que de brèves recherches sur internet permettent de trouver les réponses sans souci...

    Pour la fonction dépouillement, il suffira de boucler sur la liste
    https://www.w3schools.com/python/python_lists_loop.asp
    et dans la boucle en question, faire appel à la fonction incr_dico ( le paramètre "clé" étant la valeur de l'élément sur laquelle se trouve la boucle

    0
  6. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    Bonjour,

    un test if valide en Python:

    if cle == toto:
        x=1
    else:
        x=0
    

    (remarquer les deux points ":" en fin d'instruction)

    valeur "cle" = +1 ca n'est pas du Python
    "cle" = dico valeur 1 non plus

    cle est une chaine de caractères, pas une variable, on ne peut pas faire "cle" =10
    et dico valeur 1, c'est quoi ?

    C'est basique, tout ça ...
    0