Denombrement¶
But de l'éxercice¶
Écrire une fonction count_words() dans un fichier count.py afin de dénombrer les mots du texte passé en paramètre.
Comme cet exercice est (très) simple, il faudra vous démener pour trouver une, deux (voir plus) solutions différentes.
Et voila le script de tests unitaires: test_count.py
Exercice de base¶
Retourner un dictionaire associant chaque mot d'un texte au nombre de fois qu'il apparait.
>>> count_words("toto tata titi titi toto")
{"toto": 2, "tata": 1, "titi": 2}
Bonus numéro 1¶
Faire en sorte que la fonction reconnaisse les mots quelle que soit leur casse (majuscule et/ou minuscules).
>>> count_words("tOto Tata titI tiTi tOtO")
{"toto": 2, "tata": 1, "titi":2}
Bonus numéro 2¶
Faire en sorte que la fonction reconnaisse les mots même s'il y a de la ponctuation.
>>> count_words("tOto, Tata; titI. tiTi! tOtO?")
{"toto": 2, "tata": 1, "titi":2}
Bonus numéro 3¶
Faire en sorte que la fonction reconnaisse les mots d'un texte long avec des sauts de ligne.
>>> count_words("""
Ce sont les lapins qui ont ete etonnes !...
Depuis si longtemps qu'ils voyaient la porte du moulin
fermee, les murs et la plate-forme envahis par les herbes,
ils avaient fini par croire que la race des meuniers etait
eteinte, et, trouvant la place bonne, ils en avaient fait
quelque chose comme un quartier general, un centre
d'operations strategiques : le moulin de Jemmapes des
lapins...
La nuit de mon arrivee, il y en avait bien, sans mentir,
une vingtaine assis en rond sur la plate-forme, en train
de se chauffer les pattes a un rayon de lune...
Le temps d'entrouvrir une lucarne, frrt !
""")
{
'la': 6, 'les': 4, 'en': 4, 'de': 4, 'ils': 3, 'un': 3,
'lapins': 2, 'moulin': 2, 'et': 2, 'plate-forme': 2, 'par': 2,
'avaient': 2, 'des': 2, 'd': 2, 'le': 2, 'une': 2, 'ce': 1,
'sont': 1, 'qui': 1, 'ont': 1, 'ete': 1, 'etonnes': 1, 'depuis': 1,
'si': 1, 'longtemps': 1, 'qu': 1, 'voyaient': 1, 'porte': 1,
'du': 1, 'fermee': 1, 'murs': 1, 'envahis': 1, 'herbes': 1,
'fini': 1, 'croire': 1, 'que': 1, 'race': 1, 'meuniers': 1,
'etait': 1, 'eteinte': 1, 'trouvant': 1, 'place': 1, 'bonne': 1,
'fait': 1, 'quelque': 1, 'chose': 1, 'comme': 1, 'quartier': 1,
'general': 1, 'centre': 1, 'operations': 1, 'strategiques': 1,
'jemmapes': 1, 'nuit': 1, 'mon': 1, 'arrivee': 1, 'il': 1, 'y': 1,
'avait': 1, 'bien': 1, 'sans': 1, 'mentir': 1, 'vingtaine': 1,
'assis': 1, 'rond': 1, 'sur': 1, 'train': 1, 'se': 1,
'chauffer': 1, 'pattes': 1, 'a': 1, 'rayon': 1, 'lune': 1,
'temps': 1, 'entrouvrir': 1, 'lucarne': 1, 'frrt': 1
}
Aide¶
Si vraiment vous êtes bloqué.e.s, vous pouvez regarder ces articles:
- Getting a list of words from a sentence
- Checking existence of a given word (key) in dictionary
- Initializing a key to a unique default value in a dictionary
- Various techniques for counting words in a sentence
- Ignoring punctuation marks while extracting words