Olá, Luiz Fernando. Como vai?
Sua solução ficou ótima! O uso da biblioteca random (com o alias rd) para simular a temperatura dos servidores foi uma excelente sacada. Na prática, usar o rd.uniform(1, 100) ajuda muito a testar o comportamento do código em cenários imprevisíveis, gerando números flutuantes (float) que simulam perfeitamente os sensores de um Data Center.
A formatação da saída com {temperatura:.2f} também ficou perfeita, garantindo que o valor na tela não fique com uma quantidade gigante de casas decimais.
Contudo, olhando de perto para as suas condições literais de verificação, há um pequeno detalhe na primeira regra (if temperatura == 25) que, por motivos estatísticos e lógicos, pode acabar nunca acontecendo na prática.
O "Problema" da Precisão dos Números Decimais
A função rd.uniform(1, 100) gera números com muitas casas decimais (por exemplo: 25.004321... ou 24.99987...). Para o Python entrar no seu primeiro if, a temperatura gerada precisa ser exatamente 25.00000000000000.... Se o sensor registrar 25.01 ºC, o código vai pular direto para o bloco else e disparar o "ALERTA!".
Além disso, se a temperatura limite aceitável é exatamente 25 ºC, qualquer valor abaixo disso está controlado, e qualquer valor acima disso deveria disparar o alerta.
Otimizando a Lógica das Condicionais
Para tornar o seu sistema de monitoramento de servidores mais seguro e condizente com as regras de negócio reais, podemos simplificar para duas condições principais ou ajustar os intervalos. Veja esta proposta de melhoria:
import random as rd
# Gerando a temperatura do servidor
temperatura = rd.uniform(1, 100)
print("TI ALURA----------------------------------------")
print(f"Temperatura dos Servidores: {temperatura:.2f} ºC")
# Se for menor ou igual a 25, a situação está normalizada
if temperatura <= 25:
print("Temperatura Controlada")
# Se passar de 25, mesmo que seja por décimos (ex: 25.01), já liga o alerta
else:
print("ALERTA! TEMPERATURA ACIMA DO LIMITE PERMITIDO!")
Indo Além: E se quisermos um estado de "Atenção"?
Se o objetivo do seu exercício original era ter três saídas diferentes utilizando o elif, podemos criar uma faixa de "Atenção" (por exemplo, quando o servidor está chegando perto do limite, entre 22 ºC e 25 ºC). Faria muito sentido para a equipe de infraestrutura de TI:
if temperatura > 25:
print("ALERTA! TEMPERATURA ACIMA DO LIMITE PERMITIDO!")
elif temperatura >= 22:
print("Atenção: Temperatura se aproximando do limite máximo!")
else:
print("Temperatura Controlada")
Parabéns pela iniciativa de usar dados dinâmicos com o random e pela ótima organização do código separando as áreas de variáveis e processamento!
Espero que possa ter lhe ajudado!