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