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:
- Exceto pela biblioteca
re, não use nenhuma outra biblioteca padrão ou bibliotecas de terceiros. - O parâmetro
poemda função pode ser uma string que pode estar vazia,Noneou qualquer outro valor. - Não modifique o caminho do arquivo, o nome do arquivo (
acrostic_poetry.py) ou o nome da função (acrostic_poetry_decryption(poem)). - Ao depurar o código no ambiente online, use o comando
python3 acrostic_poetry.pypara chamar o Python3.
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:
- Divida a string
poemem uma lista de linhas usando a funçãore.split()com o padrão de expressão regularr"[,.]". - Itere pela lista de linhas e, para cada linha, extraia a primeira palavra dividindo a linha por espaços e pegando o primeiro elemento.
- Concatene todas as primeiras palavras para obter o texto de decifração.
- Atribua o texto de decifração à variável
decryption_texte 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
Teste a Função de Decifração
Nesta etapa, você testará a função acrostic_poetry_decryption(poem) com o exemplo fornecido no desafio.
- 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))
- 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.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



