TP4. nirPrfne
Énoncé
Le mardi, c'est cryptographie.
Dans ce TP nous nous intéressons au chiffrement par décalage.
Cette méthode, aussi connue sous le nom de "chiffre de César" ou encore rotx
était utilisée par l'empereur pour ne pas être "sniffé" par la poste impériale.
Le principe est très simple comme l'illustre le schéma ci-dessous.
Une lettre est transformée par un décalage / une rotation d'une certaine quantité (3 sur le schéma) vers la droite dans l'ordre alphabétique.
Lorsque l'on arrive à la fin de l'alphabet, c'est à dire sur Z
on recommence au début, c'est à dire sur A
.
Les minuscules restent des minuscules, et les majuscules restent des majuscules.
L'objectif de ce TP est double :
- s'entraîner à la lecture de documentation d'interface de programmation ;
- faire connaissance avec monsieur ASCII et madame UNICODE.
Votre travail consiste tout d'abord à implémenter les deux fonctions du module rotx
dont le squelette vous est fourni ici et affiché ci dessous.
"""Module d'encodage/décodage par rotation"""
def rot(decalage, lettre):
"""Renvoie la lettre donnée encodée par rotation.
Le décalage utilisé pour la rotation est spécifié en paramètre.
Préconditions :
- lettre est une chaîne de caractère de taille 1 ;
- lettre est un soit une lettre majuscule
soit une lettre minuscule.
"""
# TODO
...
def rot13(lettre):
"""Encode la lettre donnée par rotation de 13 caractères.
Préconditions :
- lettre est une chaîne de caractères de taille 1.
"""
# TODO
...
Nous vous demandons de vérifier les préconditions et de renvoyer None
si celles-ci ne sont pas vérifiées.
Ensuite, vous devrez réaliser un programme decodeur_nom_tp.py
qui effectue les opérations suivantes :
- demande à l'utilisateur de saisir un nom de fichier et crée un fichier portant ce nom dans le répertoire courant (écrasement si fichier déjà existant) ;
- utilise le module
rotx
pour décoder chacune des lettres du nom de ce TP (nirPrfne
) et écrit le résultat dans le fichier créé à l'étape précédente ; - affiche sur la sortie standard votre prénom encodé par un décalage de
4
en utilisant un seul appel à la fonctionprint
et sans variable.
Vous aurez besoin de lire les pages d'aide concernant les mots clefs et les fonctions ci-dessous :
chr
aide disponible avechelp(chr)
ord
aide disponible avechelp(ord)
print
aide disponible avechelp(print)
input
aide disponible avechelp(input)
open
aide disponible avechelp(open)
Cliquez ici pour révéler la correction.
Correction
Une correction détaillée en vidéo est disponible :
Difficulté