Olá, Deivide. Como vai?
Sua resolução ficou excelente! Combinar as estruturas de repetição (while) com o tratamento de exceções (try e except) é uma das melhores práticas no desenvolvimento de software para construir programas robustos e resilientes a falhas.
Ao criar um loop infinito com o while True, você garante que o programa não vai simplesmente fechar se o usuário digitar algo errado (como uma letra em vez de um número). O bloco except ValueError captura esse erro de digitação de forma elegante e dá uma nova chance para o usuário inserir o dado corretamente, o que melhora muito a experiência de uso.
Gostaria de destacar um ponto importante sobre a lógica do seu código para complementar o seu aprendizado. Do jeito que o script está estruturado, caso o usuário digite uma temperatura perfeitamente válida e segura (por exemplo, 22), o programa não vai entrar no bloco if temperatura > 25:. Como não há nenhuma instrução fora desse bloco para encerrar o loop, o programa vai continuar pedindo a temperatura infinitamente. O break só é acionado se a temperatura for maior que 25.
Para ajustar isso e cobrir todos os cenários possíveis (temperaturas normais e alertas), mantendo o programa rodando até receber um número válido, podemos adicionar uma estrutura com o else. Veja como o código fica ainda mais completo:
while True:
try:
temperatura = float(input("Digite a temperatura em graus Celsius: "))
if temperatura > 25:
print("Alerta! Temperatura acima do limite permitido.")
else:
print("Temperatura dentro do limite seguro.")
break # Encerra o loop 'while' após receber qualquer número válido e avaliado
except ValueError:
# Captura o erro caso o usuário digite texto em vez de números
print("Erro: Por favor, digite apenas números.")
Repare que, ao posicionar o break alinhado diretamente dentro do bloco try (fora do if/else), garantimos que o loop será encerrado assim que um valor numérico for digitado com sucesso, independentemente de a temperatura estar alta ou normal.
Parabéns pela iniciativa de ir além dos conceitos básicos de condicionais e trazer o tratamento de erros para o seu desafio de monitoramento de servidores!
Espero que possa ter lhe ajudado!