1
resposta

Resolução completa IF maior ou menor temperaturas

while True:
    limite_quente = 30
    limite_frio = 15

    temperatura = int(input('Informe a temperatura atual : '))

    diferenca_quente =  temperatura - limite_quente 
    diferenca_fria = temperatura - limite_frio

    if temperatura > limite_quente:
        print(f'ALERTA ! Temperatura está {diferenca_quente}° acima do permitido !!')
    elif temperatura < limite_frio:
        print(f'ALERTA ! Temperatura está {diferenca_fria}° abaixo do permitido !!')
    else:
        print(f'Temperatura de {temperatura} está agradável')

    verificacao = input('Deseja verificar novamente ? (S/N)').upper
    
    if verificacao == 'N':
        print('Finalizando programa')
        break
1 resposta

Olá, Cauan. Como vai?

Parabéns pela resolução! O seu código está muito bem estruturado e você utilizou conceitos fundamentais de forma muito inteligente, como o cálculo da diferença para dar um feedback mais preciso ao usuário.

Gostaria de destacar alguns pontos técnicos excelentes na sua solução e uma pequena correção que fará seu programa funcionar perfeitamente:

  • Cálculo de Diferença: Calcular o quanto a temperatura excedeu ou baixou do limite (diferenca_quente e diferenca_fria) agrega muito valor à experiência do usuário, pois não diz apenas que está errado, mas o "quanto" está errado.
  • Estrutura de Repetição: O uso do while True com o break é a forma ideal de criar um menu interativo que permite múltiplas verificações sem precisar reiniciar o script manualmente.
  • Uso do elif: Você utilizou corretamente o elif. Como uma temperatura não pode ser maior que 30 e menor que 15 ao mesmo tempo, as condições são mutuamente exclusivas, e o elif garante que o computador não faça verificações desnecessárias.

Pequeno ajuste técnico:

Notei que na linha onde você captura a verificacao, você utilizou .upper, mas esqueceu dos parênteses. No Python, upper é um método (uma função), então precisamos "chamá-lo" usando (). Sem os parênteses, a comparação if verificacao == 'N' nunca será verdadeira porque a variável guardará a referência da função e não o texto convertido.

O trecho corrigido ficaria assim:

verificacao = input('Deseja verificar novamente ? (S/N)').upper()

Sugestão de melhoria (Valor Absoluto):

No caso da diferenca_fria, se a temperatura for 10, o resultado será 10 - 15 = -5. O print mostrará "Temperatura está -5° abaixo". Para evitar o sinal de menos e exibir um valor mais natural, você pode usar a função abs() (valor absoluto):

elif temperatura < limite_frio:
    diferenca_fria = abs(temperatura - limite_frio)
    print(f'ALERTA ! Temperatura está {diferenca_fria}° abaixo do permitido !!')

Continue com essa excelente lógica de programação. Criar scripts que interagem com o usuário e tratam dados variáveis é um passo essencial na jornada de um desenvolvedor Python!

Espero que possa ter lhe ajudado!