Vous pouvez télécharger ici le fichier à compléter pour cet exercice.
Question 1
Complétez la définition de la fonction occurences()
en respectant les spécifications.
def occurrences(sequence):
"""
sequence – Une séquence ordonnée (tuple, list ou str)
Sortie: dict – dictionnaire tel que :
- les clefs sont les valeurs de la séquence
- les valeurs sont les occurrences de ces clefs dans la séquence
>>> occurrences([4, 2, 3, 4, 1, 4, 3, 4])
{4: 4, 2: 1, 3: 2, 1: 1}
>>> occurrences("abracadrabra")
{'a': 5, 'b': 2, 'r': 3, 'c': 1, 'd': 1}
"""
# TODO
Question 2
Complétez la définition de la fonction compte_mots()
en respectant les spécifications.
def compte_mots(chaine):
"""
chaine – str, une chaîne de caractère comportant des espaces
Sortie: dict – dictionnaire tel que :
- les clés sont les mots de la chaine
- les valeurs sont les occurrences des mots
>>> compte_mots("a b a c ab")
{'a': 2, 'b': 1, 'c': 1, 'ab': 1}
"""
# TODO
- Une piste ?
Question 3
Téléchargez le texte du « Petit Chaperon Rouge » puis enregistrez-le dans votre répertoire de travail.
Dans le programme principal, importez ce texte puis écrivez les instructions nécessaires pour afficher, dans la console, chaque mot de ce texte suivi de son nombre d'occurrences dans le texte.
- Une piste ?
- Affichage à obtenir
Si f
est le nom d'une variable faisant référence à un fichier texte, alors f.read()
renvoie le contenu de ce fichier
texte sous la forme d'une unique chaîne de caractères.
Il : 9
etait : 9
une : 8
fois : 4
adorable : 1
petite : 1
fille : 1
que : 22
tout : 11
le : 51
Question 4
Complétez la définition de la fonction compte_tous_mots()
en respectant ses spécifications.
def compte_tous_mots(chaine):
"""
chaine – str, une chaîne de caractère comportant des espaces
Sortie: dict – dictionnaire tel que :
- les clés sont des entiers (longueurs possibles pour un mot)
- les valeurs sont les occurrences des mots ayant cette longueur
>>> compte_tous_mots("a b a c ab")
{1: 4, 2: 1}
"""
# TODO
Appliquez ensuite, dans le programme principal, cette fonction au texte du « Petit Chaperon Rouge ».
- Affichage à obtenir
- Une piste ?
{2: 454, 5: 241, 3: 189, 4: 295, 8: 78, 6: 120, 1: 98, 7: 109, 9: 22, 10: 9, 12: 1, 13: 1, 11: 1}
Toujours la méthode .split()...
Question 5
Complétez la définition de la fonction tab_plus_frequent()
qui prend en paramètre
un dictionnaire dont les clefs sont des chaînes de caractères et un entier strictement
positif longueur. Cette fonction renvoie un tableau constitués des chaînes de caractères
de taille la longueur spécifiée et associées à la plus grande valeur dans le dictionnaire.
def tab_plus_frequent(dico, longueur):
"""
dico – dictionnaire de chaines avec leur occurence
Sortie : string – chaine de taille longueur ayant
l'occurence la plus grande.
>>> tab_plus_frequent({'a': 3, 'b': 2, 'c': 3, 'ab': 5}, 1)
['a', 'c']
"""
# TODO
Appliquez ensuite, dans le programme principal, cette fonction au dictionnaire obtenu à la question 3. à partir du texte du « Petit Chaperon Rouge » afin d'afficher, pour chaque longueur possible de mot, le (ou les) plus présents dans le texte.
- Affichage à obtenir
- Une piste ?
1 carac : ['a'] avec 32 occurences
2 carac : ['et'] avec 61 occurences
3 carac : ['que'] avec 22 occurences
4 carac : ['mere'] avec 31 occurences
5 carac : ['grand'] avec 29 occurences
6 carac : ['encore'] avec 6 occurences
7 carac : ['galette'] avec 5 occurences
8 carac : ['Chaperon'] avec 24 occurences
9 carac : ['bouteille', 'engloutir'] avec 2 occurences
10 carac : ['rencontrer', 'noisetiers', 'brillaient', 'satisfaite', 'approchant', 'fourrerent', 'retrouvant', 'cadenasser', 'intentions'] avec 1 occurences
11 carac : ['Allegrement'] avec 1 occurences
12 carac : ['reconnaitras'] avec 1 occurences
13 carac : ['renseignement'] avec 1 occurences
C'est un algorithme de recherche du maximum légèrement modifié. Lorsqu'on rencontre un nouveau maximum, on ré-initialise le tableau ; lorsqu'on rencontre un mot de même « valeur », on l'incorpore au tableau.