Décryptage de poèmes acrostiques en Python

PythonBeginner
Pratiquer maintenant

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 :

  1. Sauf pour la bibliothèque re, n'utiliser aucune autre bibliothèque standard ou bibliothèque tierce.
  2. Le paramètre poem de la fonction peut être une chaîne de caractères qui peut être vide, None ou toute autre valeur.
  3. Ne pas modifier le chemin du fichier, le nom du fichier (acrostic_poetry.py) ou le nom de la fonction (acrostic_poetry_decryption(poem)).
  4. Lors du débogage du code dans l'environnement en ligne, utiliser la commande python3 acrostic_poetry.py pour appeler Python3.
✨ Vérifier la solution et pratiquer

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 :

  1. Divisez la chaîne poem en une liste de lignes en utilisant la fonction re.split() avec le motif d'expression régulière r"[,.]".
  2. 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.
  3. Concaténez tous les premiers mots pour obtenir le texte de décryptage.
  4. Affectez le texte de décryptage à la variable decryption_text et 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
✨ Vérifier la solution et pratiquer

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.

  1. 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))
  1. 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.

✨ Vérifier la solution et pratiquer

Résumé

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.