Exo dictionnaire python nsi première

Aurelgkk Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Phil_1857 Messages postés 1872 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))
A voir également:

6 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Tout est indiqué dans l'énoncé de l'exercice et les commentaires du code....
Quoi qu'il en soit,
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/

.
0
Aurelgkk Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, en effet la consigne indique bien quil faut cree une fonction incr_dico() mais je ne sais pas du tout comment faire
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Pour faire un dictionnaire
https://courspython.com/dictionnaire.html
0
Aurelgkk Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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
Aurelgkk Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Je ne comprend pas egalement "entre,sortie,effet" qui sont dans les commentaire du code.
0

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

Posez votre question
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
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