Introducción
En este proyecto, aprenderás a descifrar el mensaje oculto en un poema acróstico. Los poemas acrósticos son un tipo de poesía donde las primeras letras de cada línea forman una palabra o frase. Tu tarea es escribir una función de Python que pueda extraer las primeras palabras de cada línea y concatenarlas para revelar el mensaje oculto.
👀 Vista previa
## Ejemplo
$ python3 acrostic_poetry.py
RainItItAnd
🎯 Tareas
En este proyecto, aprenderás:
- Cómo entender el enunciado del problema y los requisitos del proyecto de descifrado de poemas acrósticos
- Cómo implementar la función
acrostic_poetry_decryption(poem)para descifrar el mensaje en el poema acróstico - Cómo probar la función de descifrado con una entrada de ejemplo
🏆 Logros
Después de completar este proyecto, podrás:
- Entender y resolver problemas que involucren manipulación de texto y extracción de patrones
- Escribir una función de Python que pueda descifrar mensajes ocultos en poemas acrósticos
- Probar y depurar tu código para asegurarte de que funcione correctamente
Comprender el problema
En este paso, aprenderás a entender el enunciado del problema y los requisitos del proyecto de descifrado de poemas acrósticos.
El objetivo de este proyecto es escribir una función acrostic_poetry_decryption(poem) que tome como entrada una cadena que representa el contenido de un poema y devuelva el mensaje descifrado extrayendo las primeras palabras de cada línea y concatenándolas.
Los requisitos del proyecto son:
- Excepto la biblioteca
re, no utilizar ninguna otra biblioteca estándar o de terceros. - El parámetro
poemde la función puede ser una cadena que puede estar vacía,Noneo cualquier otro valor. - No modificar la ruta del archivo, el nombre del archivo (
acrostic_poetry.py) o el nombre de la función (acrostic_poetry_decryption(poem)). - Al depurar el código en el entorno en línea, utilizar el comando
python3 acrostic_poetry.pypara llamar a Python3.
Implementar la función de descifrado
En este paso, implementarás la función acrostic_poetry_decryption(poem) para descifrar el mensaje en el poema acróstico.
A continuación, se muestra el código de inicio para el archivo acrostic_poetry.py:
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
Decipher the message in the acrostic poem by extracting the first words of each line and linking them together.
"""
## If the input content is empty, return `None`
if not poem:
return None
## TODO: Implement the decryption logic
## 1. Split the poem into lines using the ',' or '.' separator
## 2. Extract the first word from each line
## 3. Concatenate the first words together to get the decryption text
## 4. Assign the resulting string to the variable `decryption_text`
return decryption_text
A continuación se muestra cómo se puede implementar la función de descifrado:
- Divide la cadena
poemen una lista de líneas utilizando la funciónre.split()con el patrón de expresión regularr"[,.]". - Itera a través de la lista de líneas y, para cada línea, extrae la primera palabra dividiendo la línea por espacios y tomando el primer elemento.
- Concatena todas las primeras palabras para obtener el texto de descifrado.
- Asigna el texto de descifrado a la variable
decryption_texty devuélvelo.
A continuación se muestra el código completado:
import re
from typing import Optional
def acrostic_poetry_decryption(poem: str) -> Optional[str]:
"""
Decipher the message in the acrostic poem by extracting the first words of each line and linking them together.
"""
## If the input content is empty, return `None`
if not poem:
return None
## Split the poem into lines using the ',' or '.' separator
lines = re.split(r"[,.]", poem)
## Extract the first word from each line
words = [line.strip().split(" ")[0] for line in lines]
## Concatenate the first words together to get the decryption text
decryption_text = "".join(words)
return decryption_text
Probar la función de descifrado
En este paso, probarás la función acrostic_poetry_decryption(poem) con el ejemplo proporcionado en el desafío.
- Agrega el siguiente código al final del archivo
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))
- Guarda el archivo y ejecuta el siguiente comando en la terminal:
python3 acrostic_poetry.py
La salida debe ser:
RainItItAnd
Esto confirma que la función acrostic_poetry_decryption(poem) está funcionando como se esperaba.
¡Felicitaciones! Has completado el proyecto de descifrado de poemas acrósticos. Si tienes alguna pregunta o necesitas ayuda adicional, no dudes en preguntar.
Resumen
¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



