2
respostas

[Projeto] Indentificando palavras longas

Segue minha resolução, reutilizando conceitos dos projetos anteriores.

import unicodedata

def remover_acentos(texto):
    return ''.join(c for c in unicodedata.normalize('NFD', texto) if unicodedata.category(c) != 'Mn'
    )

def limpar_texto(texto):
    texto = texto.lower()
    caracteres = ",.!?;:\"'(){}[]"
    for char in caracteres:
        texto = texto.replace(char,"")
    return texto.strip()

def palavras_longas(frase, limite=10):
    frase_original = limpar_texto(frase)
    frase_sem_acentos = limpar_texto(remover_acentos(frase))

    palavras_originais = frase_original.split()
    palavras_limpa = frase_sem_acentos.split()

    palavras_resultado = []
    
    for original, limpa in zip(palavras_originais, palavras_limpa):
        if len(limpa) > limite and limpa.replace('-', '').replace("'", '').isalpha():
            palavras_resultado.append(original)

    return palavras_resultado

texto = input('Digite um texto: ')
resultado = palavras_longas(texto, limite=10)

if resultado:
   print(f"Palavras longas encontradas: {', '.join(resultado)}")

else:
    print('Nenhuma palavra longa foi encontrada no texto.')
2 respostas

Olá, Franco, como vai?

O seu código demonstra um cuidado excelente com o tratamento de dados, especialmente ao considerar a normalização de caracteres e a remoção de pontuação antes da verificação do comprimento das palavras. O uso das funções auxiliares para limpar o texto e remover acentos garante que a contagem dos caracteres seja precisa, evitando que uma vírgula ou um acento interfiram na lógica do limite definido. É muito bom ver como você aplicou conceitos avançados de manipulação de strings para tornar a solução mais robusta e profissional.

Parabéns pelo empenho e por compartilhar seu progresso com a comunidade.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

grato pela atenção!