Descifrado de poemas acrósticos en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ControlFlowGroup -.-> python/list_comprehensions("List Comprehensions") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FileHandlingGroup -.-> python/file_operations("File Operations") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") subgraph Lab Skills python/strings -.-> lab-302717{{"Descifrado de poemas acrósticos en Python"}} python/list_comprehensions -.-> lab-302717{{"Descifrado de poemas acrósticos en Python"}} python/function_definition -.-> lab-302717{{"Descifrado de poemas acrósticos en Python"}} python/file_operations -.-> lab-302717{{"Descifrado de poemas acrósticos en Python"}} python/regular_expressions -.-> lab-302717{{"Descifrado de poemas acrósticos en Python"}} end

Entender 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:

  1. Excepto la biblioteca re, no utilizar ninguna otra biblioteca estándar o de terceros.
  2. El parámetro poem de la función puede ser una cadena que puede estar vacía, None o cualquier otro valor.
  3. No modificar la ruta del archivo, el nombre del archivo (acrostic_poetry.py) o el nombre de la función (acrostic_poetry_decryption(poem)).
  4. Al depurar el código en el entorno en línea, utilizar el comando python3 acrostic_poetry.py para 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:

  1. Divide la cadena poem en una lista de líneas utilizando la función re.split() con el patrón de expresión regular r"[,.]".
  2. 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.
  3. Concatena todas las primeras palabras para obtener el texto de descifrado.
  4. Asigna el texto de descifrado a la variable decryption_text y 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.

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

✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.