Introduction
Dans ce projet, vous allez apprendre à déchiffrer le message caché dans un poème acrostiche. Les poèmes acrostiches sont un type de poésie où les premières lettres de chaque ligne forment un mot ou une phrase. Votre tâche consiste à écrire une fonction Python qui peut extraire les premiers mots de chaque ligne et les concaténer pour révéler le message caché.
👀 Aperçu
## Exemple
$ python3 acrostic_poetry.py
RainItItAnd
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment comprendre l'énoncé du problème et les exigences du projet de décryptage de poèmes acrostiches
- Comment implémenter la fonction
acrostic_poetry_decryption(poem)pour décrypter le message dans le poème acrostiche - Comment tester la fonction de décryptage avec une entrée d'exemple
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Comprendre et résoudre des problèmes impliquant la manipulation de texte et l'extraction de motifs
- Écrire une fonction Python qui peut déchiffrer des messages cachés dans des poèmes acrostiches
- Tester et déboguer votre code pour vous assurer qu'il fonctionne correctement
Comprendre le problème
Dans cette étape, vous allez apprendre à comprendre l'énoncé du problème et les exigences du projet de décryptage de poèmes acrostiches.
Le but de ce projet est d'écrire une fonction acrostic_poetry_decryption(poem) qui prend en entrée une chaîne de caractères représentant le contenu d'un poème et renvoie le message décrypté en extrayant les premiers mots de chaque ligne et en les concaténant ensemble.
Les exigences du projet sont les suivantes :
- Sauf pour la bibliothèque
re, n'utiliser aucune autre bibliothèque standard ou bibliothèque tierce. - Le paramètre
poemde la fonction peut être une chaîne de caractères qui peut être vide,Noneou toute autre valeur. - Ne pas modifier le chemin du fichier, le nom du fichier (
acrostic_poetry.py) ou le nom de la fonction (acrostic_poetry_decryption(poem)). - Lors du débogage du code dans l'environnement en ligne, utiliser la commande
python3 acrostic_poetry.pypour appeler Python3.
Implémenter la fonction de décryptage
Dans cette étape, vous allez implémenter la fonction acrostic_poetry_decryption(poem) pour décrypter le message dans le poème acrostiche.
Voici le code de départ pour le fichier acrostic_poetry.py :
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
Décrypte le message dans le poème acrostiche en extrayant les premiers mots de chaque ligne et en les reliant ensemble.
"""
## Si le contenu d'entrée est vide, renvoyez `None`
if not poem:
return None
## TODO: Implémentez la logique de décryptage
## 1. Divisez le poème en lignes en utilisant le séparateur ',' ou '.'
## 2. Extrait le premier mot de chaque ligne
## 3. Concaténez les premiers mots pour obtenir le texte de décryptage
## 4. Affectez la chaîne résultante à la variable `decryption_text`
return decryption_text
Voici comment vous pouvez implémenter la fonction de décryptage :
- Divisez la chaîne
poemen une liste de lignes en utilisant la fonctionre.split()avec le motif d'expression régulièrer"[,.]". - Parcourez la liste de lignes et, pour chaque ligne, extrayez le premier mot en divisant la ligne par des espaces et en prenant le premier élément.
- Concaténez tous les premiers mots pour obtenir le texte de décryptage.
- Affectez le texte de décryptage à la variable
decryption_textet renvoyez-le.
Voici le code terminé :
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
Décrypte le message dans le poème acrostiche en extrayant les premiers mots de chaque ligne et en les reliant ensemble.
"""
## Si le contenu d'entrée est vide, renvoyez `None`
if not poem:
return None
## Divisez le poème en lignes en utilisant le séparateur ',' ou '.'
lines = re.split(r"[,.]", poem)
## Extrait le premier mot de chaque ligne
words = [line.strip().split(" ")[0] for line in lines]
## Concaténez les premiers mots pour obtenir le texte de décryptage
decryption_text = "".join(words)
return decryption_text
Tester la fonction de décryptage
Dans cette étape, vous allez tester la fonction acrostic_poetry_decryption(poem) avec l'exemple fourni dans le défi.
- Ajoutez le code suivant à la fin du fichier
acrostic_poetry.py:
if __name__ == "__main__":
string = "Rain is falling all around, It falls on field and tree. It rains on the umbrella here, And on the ships at sea."
print(acrostic_poetry_decryption(string))
- Enregistrez le fichier et exécutez la commande suivante dans le terminal :
python3 acrostic_poetry.py
La sortie devrait être :
RainItItAnd
Cela confirme que la fonction acrostic_poetry_decryption(poem) fonctionne comme prévu.
Félicitations ! Vous avez terminé le projet de décryptage de poèmes acrostiques. 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.



