Quelques one-liners pour s'échauffer. Le but de l'exercice est d'explorer la documentation pour trouver le moyen de coder ces fonctions en une ligne.
a) Ecrire une fonction is_palindrome
qui reconnaît si un mot est un palindrome.
b) Ecrire une fonction is_pangram
qui reconnaît si une phrase (sans lettres accentuées, par exemple en anglais) est un pangramme, c'est à dire, contient au moins une fois chaque lettre de l'alphabet (exemples : The quick brown fox jumps over the lazy dog, ou encore Portez ce vieux whisky au juge blond qui fume.
c) Ecrire une fonction remove_adjacent
qui prend en argument une liste et élimine les répétitions consécutives d'un même élément, par exemple pour [1,2,2,3,3,1] on doit obtenir [1,2,3,1].
d) Ecrire une fonction digits_sum
qui prend comme argument un entier et renvoie la somme de ses chiffres.
Les lycéens aiment bien occuper leurs cours de maths en cherchant des messages qui peuvent s'écrire en lisant à l'envers l'afficheur de leur calculatrice, comme par exemple
![]() | ou encore | ![]() |
ou même | ![]() |
![]() | se retourne en | ![]() |
Sur le même principe, programmer un dictionnaire de scrabble : étant donnée une chaîne quelconque (majuscules non accentuées), trouver un mot le plus long possible formé avec ses lettres :
>>> lookup('XWRDYTRERASZ')
['DARTRES', 'RETARDS', 'STEWARD']
>>>
Il pîaart que puor la lctreue, l'orrde des lrttees à l'iétunreir des mots n'a acnuue itnpocmare. La sulee chose qui cptmoe est que la pemièrre et la dneèirre lttree seonit à leur pclae.
Écrire un programme permettant de tester cette théorie. Il devra prendre en entrée un fichier "texte" (disons, pour commencer, du français en ASCII étendu 'latin-1' ou en 'utf-8') et mélanger aléatoirement les lettres à l'intérieur des mots en respectant la ponctuation et la mise en page.
Une fois le programme fonctionnel, on étudiera la possibilité de traiter des fichiers utilisant des encodages de caractères différents.
Par exemple, le fichier harmonie.txt devra donner quelque chose comme ceci.
Tester votre programme sur un fichier plus gros, comme celui-ci.
Que faudrait-il faire pour brouiller de la même manière une page html en conservant sa mise en page ?