Olá, Eduardo! Tudo bem?
Parece que você está no caminho certo com o seu código. No entanto, há um pequeno ajuste que pode ser feito para garantir que a validação funcione corretamente. O problema está na forma como o try
e o except
estão sendo usados. No seu código atual, o except
não está capturando o erro que você espera, porque a função extract_letters
retorna None
quando a palavra tem menos de três letras, e isso não gera uma exceção.
Para corrigir isso, você pode alterar a função para lançar uma exceção quando a palavra não tiver pelo menos três letras. Veja como você pode fazer isso:
def extract_letters(keyword):
# check if the keyword is at least three letters long
if len(keyword) < 3:
raise ValueError("A palavra-chave deve conter ao menos três letras.")
primeiras_3_letras = keyword[:3]
ultimas_3_letras = keyword[-3:]
return primeiras_3_letras, ultimas_3_letras
while True:
palavra_chave = input('Digite a palavra-chave: ')
try:
primeiras_3, ultimas_3 = extract_letters(palavra_chave)
print(f'Primeiras: {primeiras_3}\nÚltimas: {ultimas_3}')
break
except ValueError as e:
print(e)
input('Tecle ENTER para tentar novamente.')
Com essa modificação, a função extract_letters
lança uma exceção ValueError
quando a palavra não tem pelo menos três letras. Assim, o bloco except
captura essa exceção e exibe a mensagem apropriada.
Bons estudos!