Decifrando Poesia Acróstica em Python

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como decifrar a mensagem oculta em um poema acróstico. Poemas acrósticos são um tipo de poesia onde as primeiras letras de cada linha formam uma palavra ou frase. Sua tarefa é escrever uma função Python que possa extrair as primeiras palavras de cada linha e concatená-las para revelar a mensagem oculta.

👀 Pré-visualização

## Exemplo
$ python3 acrostic_poetry.py
RainItItAnd

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como entender a declaração do problema e os requisitos para o projeto de Decifração de Poesia Acróstica
  • Como implementar a função acrostic_poetry_decryption(poem) para decifrar a mensagem no poema acróstico
  • Como testar a função de decifração com uma entrada de exemplo

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Entender e resolver problemas envolvendo manipulação de texto e extração de padrões
  • Escrever uma função Python que possa decifrar mensagens ocultas em poemas acrósticos
  • Testar e depurar seu código para garantir que ele funcione corretamente

Entenda o Problema

Nesta etapa, você aprenderá como entender a declaração do problema e os requisitos para o projeto de Decifração de Poesia Acróstica.

O objetivo deste projeto é escrever uma função acrostic_poetry_decryption(poem) que recebe uma string representando o conteúdo de um poema como entrada e retorna a mensagem decifrada, extraindo as primeiras palavras de cada linha e concatenando-as.

Os requisitos para o projeto são:

  1. Exceto pela biblioteca re, não use nenhuma outra biblioteca padrão ou bibliotecas de terceiros.
  2. O parâmetro poem da função pode ser uma string que pode estar vazia, None ou qualquer outro valor.
  3. Não modifique o caminho do arquivo, o nome do arquivo (acrostic_poetry.py) ou o nome da função (acrostic_poetry_decryption(poem)).
  4. Ao depurar o código no ambiente online, use o comando python3 acrostic_poetry.py para chamar o Python3.
✨ Verificar Solução e Praticar

Implemente a Função de Decifração

Nesta etapa, você implementará a função acrostic_poetry_decryption(poem) para decifrar a mensagem no poema acróstico.

Aqui está o código inicial para o arquivo acrostic_poetry.py:

import re
from typing import Optional


def acrostic_poetry_decryption(poem: str) -> Optional[str]:
    """
    Decifra a mensagem no poema acróstico extraindo as primeiras palavras de cada linha e juntando-as.
    """
    ## Se o conteúdo de entrada estiver vazio, retorne `None`
    if not poem:
        return None

    ## TODO: Implemente a lógica de decifração
    ## 1. Divida o poema em linhas usando o separador ',' ou '.'
    ## 2. Extraia a primeira palavra de cada linha
    ## 3. Concatene as primeiras palavras para obter o texto de decifração
    ## 4. Atribua a string resultante à variável `decryption_text`

    return decryption_text

Aqui está como você pode implementar a função de decifração:

  1. Divida a string poem em uma lista de linhas usando a função re.split() com o padrão de expressão regular r"[,.]".
  2. Itere pela lista de linhas e, para cada linha, extraia a primeira palavra dividindo a linha por espaços e pegando o primeiro elemento.
  3. Concatene todas as primeiras palavras para obter o texto de decifração.
  4. Atribua o texto de decifração à variável decryption_text e retorne-o.

Aqui está o código completo:

import re
from typing import Optional


def acrostic_poetry_decryption(poem: str) -> Optional[str]:
    """
    Decifra a mensagem no poema acróstico extraindo as primeiras palavras de cada linha e juntando-as.
    """
    ## Se o conteúdo de entrada estiver vazio, retorne `None`
    if not poem:
        return None

    ## Divida o poema em linhas usando o separador ',' ou '.'
    lines = re.split(r"[,.]", poem)

    ## Extraia a primeira palavra de cada linha
    words = [line.strip().split(" ")[0] for line in lines]

    ## Concatene as primeiras palavras para obter o texto de decifração
    decryption_text = "".join(words)

    return decryption_text
✨ Verificar Solução e Praticar

Teste a Função de Decifração

Nesta etapa, você testará a função acrostic_poetry_decryption(poem) com o exemplo fornecido no desafio.

  1. Adicione o seguinte código ao final do arquivo 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. Salve o arquivo e execute o seguinte comando no terminal:
python3 acrostic_poetry.py

A saída deve ser:

RainItItAnd

Isso confirma que a função acrostic_poetry_decryption(poem) está funcionando conforme o esperado.

Parabéns! Você concluiu o projeto de Decifração de Poesia Acróstica. Se tiver alguma dúvida ou precisar de mais assistência, sinta-se à vontade para perguntar.

✨ Verificar Solução e Praticar

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.