Introduction
Dans ce projet, vous allez apprendre à implémenter le chiffre de César, une technique de chiffrement simple et largement connue. Le chiffre de César utilise une méthode de substitution pour remplacer les caractères anglais d'un message par le caractère situé N positions plus loin ou plus tôt dans la séquence de l'alphabet.
👀 Aperçu
## Exemple 1
text = "python"; encryption_text = "ravjqp"
## Exemple 2
text = "pyThon"; encryption_text = "raVjqp"
## Exemple 3
text = "Python31"; encryption_text = "Ravjqp31"
## Exemple 4
text = None; encryption_text = None
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment configurer l'environnement du projet et créer les fichiers nécessaires
- Comment implémenter la fonction de chiffrement de César pour décaler chaque caractère anglais d'une chaîne de 2 positions vers la droite
- Comment gérer différents types d'entrée, y compris des caractères anglais, des caractères non anglais et des valeurs nulles
- Comment tester la fonction de chiffrement de César avec divers exemples d'entrée
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Comprendre les principes de base de la technique de chiffrement du chiffre de César
- Implémenter une fonction de chiffrement de César en Python sans utiliser aucune bibliothèque standard ou de tierce partie
- Développer des compétences en manipulation de chaînes, en codage de caractères et en logique conditionnelle
- Tester votre code pour vous assurer qu'il répond aux exigences du projet
Implémentez le chiffrement de César
Dans cette étape, vous allez implémenter la fonction de chiffrement de César.
Ouvrez le fichier
caesar_cipher.py.Modifiez la fonction
caesar_encryption(text)pour obtenir la fonctionnalité souhaitée :- Entrez une chaîne de caractères et déplacez chaque caractère anglais de la chaîne de 2 positions vers la droite.
- Convertissez uniquement les caractères anglais semi-anglais, laissez le reste inchangé.
- La casse des caractères doit rester inchangée, par exemple, A sera converti en C et b sera converti en d.
Remplacez le commentaire
"""TODO"""par le code suivant :
def caesar_encryption(text: str) -> str:
if text is None:
return None
encryption_text = ""
for char in text:
if char.isalpha() and char.isascii():
if char.islower():
encryption_text += chr((ord(char) - ord("a") + 2) % 26 + ord("a"))
else:
encryption_text += chr((ord(char) - ord("A") + 2) % 26 + ord("A"))
else:
encryption_text += char
return encryption_text
Ce code implémente l'algorithme de chiffrement de César tel que décrit dans les exigences du projet.
Testez le chiffrement de César
Dans cette étape, vous allez tester la fonction de chiffrement de César avec quelques entrées d'exemple.
- Ajoutez le code suivant à la fin du fichier
caesar_cipher.py:
if __name__ == "__main__":
test_input_text = input()
print(caesar_encryption(test_input_text))
- Enregistrez le fichier
caesar_cipher.py. - Ouvrez un terminal et accédez au répertoire
/home/labex/project. - Exécutez le script
caesar_cipher.pyen utilisant la commande suivante :
python3 caesar_cipher.py
- Entrez du texte d'entrée de test et observez la sortie chiffrée.
Vérifiez les exigences
Dans cette étape, vous allez vérifier que votre implémentation répond aux exigences du projet.
Revoyez les exigences du projet et assurez-vous que votre fonction
caesar_encryption(text):- Prend une chaîne de caractères en entrée et déplace chaque caractère anglais de la chaîne de 2 positions vers la droite.
- Ne convertit que les caractères anglais demi-anglais, laissant le reste inchangé.
- Conserve la casse des caractères, par exemple, A est converti en C et b est converti en d.
Testez votre fonction avec les exemples de référence fournis :
## Exemple 1
text = "python"; encryption_text = "ravjqp"
## Exemple 2
text = "pyThon"; encryption_text = "raVjqp"
## Exemple 3
text = "Python31"; encryption_text = "Ravjqp31"
## Exemple 4
text = None; encryption_text = None
- Assurez-vous que votre fonction traite correctement tous les cas de test.
Félicitations! Vous avez terminé le projet du chiffre de César. Si vous avez des questions ou avez besoin d'aide supplémentaire, n'hésitez pas à demander.
Résumé
Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.



