Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout Inria - UCA

Exercice - niveau basique

Calcul du nombre de lignes, de mots et de caractères

On se propose d’écrire une moulinette qui annote un fichier avec des nombres de lignes, de mots et de caractères.

Le but de l’exercice est d’écrire une fonction comptage :

# un exemple de ce qui est attendu
from corrections.exo_comptage import exo_comptage
exo_comptage.example()
Loading...
# votre code
def comptage(in_filename, out_filename):
   "votre code"

N’oubliez pas de vérifier que vous ajoutez bien les fins de ligne, car la vérification automatique est pointilleuse (elle utilise l’opérateur ==), et rejettera votre code si vous ne produisez pas une sortie rigoureusement similaire à ce qui est attendu.

# pour vérifier votre code
# voyez aussi un peu plus bas, une cellule d'aide au debugging

exo_comptage.correction(comptage)
Loading...

La méthode debug applique votre fonction au premier fichier d’entrée, et affiche le résultat comme dans l’exemple ci-dessus :

# debugging
exo_comptage.debug(comptage)
Votre fonction ne semble pas créer le fichier de sortie

Accès aux fichiers d’exemples

Vous pouvez télécharger les fichiers d’exemples :


Pour les courageux, je vous donne également “Une charogne” en ISO-8859-15, qui contient le même texte que “Une charogne”, mais encodé en Latin-9, connu aussi sous le nom ISO-8859-15.

Ce dernier fichier n’est pas à prendre en compte dans la version basique de l’exercice, mais vous pourrez vous rendre compte par vous-mêmes, au cas où cela ne serait pas clair encore pour vous, qu’il n’est pas facile d’écrire une fonction comptage qui devine l’encodage, c’est-à-dire qui fonctionne correctement avec des entrées indifféremment en Unicode ou Latin, sans que cet encodage soit passé en paramètre à comptage.

C’est d’ailleurs le propos de la bibliothèque chardet qui s’efforce de déterminer l’encodage de fichiers d’entrée, sur la base de modèles statistiques.