On s'intéresse dans cet exercice au roman « L'Île mystérieuse » de Jules Verne dont on a récupéré le texte, libre de droit, sur le Projet Gutenberg.
L'objectif de cet exercice est d'effectuer quelques mesures et recherches sur le texte du roman et les mots présents.
Les différentes questions sont indépendantes et se succèdent de façon logique, ordre qui ne correspond pas nécessairement à la difficulté.
Dans tous les éditeurs ci-dessous, le fichier ile_mysterieuse.txt (téléchargeable ici) est déjà importé dans une longue chaîne de caractères nommée roman.
1. Premières mesures
Compléter l'éditeur ci-dessous afin de déterminer :
le nombre de caractères de roman. On comptera tous les caractères, lettres chiffres, ponctuation et sauts de lignes ;
le nombre de caractères 'z' présents dans roman ;
le nombre de sauts de lignes de roman. Dans le fichier ile_mysterieurse.txt, les sauts de lignes sont représentés par le caractère "\n".
Fonction, opérateur ou module interdit
Dans cet exercice on interdit d'utiliser :
str.count
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
On cherche désormais à découper le contenu du roman en une liste de mots. Il s'agit donc de ne retenir que les sous-chaînes de roman composées exclusivement de lettres.
On fournit la chaîne LETTRES qui contient l'ensemble des lettres présentes dans le roman (en minuscules ou en majuscules, accentuées ou non).
Écrire la fonction extraire_mots qui prend en paramètre une chaîne de caractères texte et renvoie la liste des mots présents dans cette chaîne de caractères. L'ordre des éléments dans cette liste est identique à l'ordre des mots dans la chaîne passée en paramètre.
Dans les prochaines questions, la liste mots qui contient l'ensemble des mots du roman dans leur ordre d'apparition est toujours accessible.
Certains mots sont donc répétés dans cette liste. Par exemple, ses 11 premiers éléments sont ['Jules','Verne','L','ÎLE','MYSTÉRIEUSE','PARTIE','LES','NAUFRAGÉS','DE','L','AIR'] : le « mot » 'L' apparaît déjà deux fois.
3. Mot le plus long
On se demande quel est le mot le plus long du roman ?
Écrire un script permettant de répondre à cette question. À l'issue de votre script, la variable plus_long
devra contenir ce mot le plus long.
On garantit qu'il n'y a pas de match nul : le mot le plus long est le seul à avoir ce nombre de lettres.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Écrire un script calculant la longueur moyenne des mots du roman. À l'issue de votre script, la variable moyenne devra contenir cette valeur.
La comparaison de nombres flottants étant problématique, le test de vérification de cet exercice s'assurera que le résultat proposé et la valeur attendue sont proches à \(10^{-6}\) près.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Entrer ou sortir du mode "deux colonnes" (Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran" (Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)