Jour 14 🐻🦊❄️🎉 : Messages secrets du Réveillon
Jean et ses invités décident de jouer à un jeu de messages secrets pendant la soirée. Ils ont découvert le chiffrement de César, une méthode historique qui consiste à décaler les lettres de l'alphabet. Ils veulent créer un petit système pour s'envoyer des messages codés pendant la soirée.
Informations nécessaires
On considère : - Un message est une chaîne de caractères - Un décalage est un nombre entier - L'alphabet utilisé est l'alphabet standard (26 lettres sans accents) - Les espaces ne sont pas modifiés par le chiffrement - Les messages sont toujours en minuscules
Pour vous aider à réaliser les décalages, voici l'alphabet avec la position de chaque lettre :
Note importante sur le retour au début de l'alphabet :
Quand on fait un décalage qui dépasse la fin de l'alphabet (après 'z'), on doit revenir au début (à 'a'). En Python, on peut utiliser l'opérateur modulo %
pour cela :
- nombre % 26
nous donne le reste de la division par 26
- Cela permet de "revenir à zéro" quand on dépasse 25
Exemple :
# Si on décale 'y' de 3 positions :
# Position de 'y' = 24
# 24 + 3 = 27
# 27 % 26 = 1 donc on revient à la position 1 ('b')
# Si on décale 'a' de 27 positions :
# Position de 'a' = 0
# 0 + 27 = 27
# 27 % 26 = 1 donc lettre à la position 1 ('b')
Exercice Principal
Chiffrement de message
Écrire une fonction chiffrer_message
qui prend en paramètre un message et un décalage et renvoie le message chiffré.
Indication : On peut utiliser la chaîne ALPHABET et la méthode index()
pour trouver la position d'une lettre
Déchiffrement de message
Écrire une fonction dechiffrer_message
qui prend en paramètre un message chiffré et le décalage utilisé, et renvoie le message d'origine.
Vérification de message
Écrire une fonction est_message_valide
qui vérifie si un message peut être correctement chiffré (uniquement des lettres minuscules non accentuées et des espaces).
Pour valider cet exercice, vous devrez rendre à votre enseignant les trois fonctions ainsi qu'un exemple d'utilisation avec des messages de voeux pour la nouvelle année.