Olá, Esdras. Como vai?
Parabéns pela resolução do desafio! O seu código ficou excelente, muito limpo e estruturado de forma super lógica.
A escolha de usar uma estrutura condicional com if, elif e else dentro da função foi perfeita para dividir o dia nos três períodos principais de saudação. Além disso, encapsular essa lógica em uma função é uma excelente prática, pois permite que você reutilize esse bloco em qualquer outra parte do seu programa.
Para complementar a sua solução e trazer duas ideias bem legais do que você pode explorar a partir de agora em Python, veja essas sugestões de boas práticas:
1. Lidando com entradas inválidas (Validação de Dados)
Do jeito que o código está estruturado hoje, se um usuário digitar por engano um número negativo (como -5) ou um número muito alto (como 30), o programa ainda vai rodar. Ele dirá "Bom dia" para -5 e "Boa noite" para 30.
Para tornar o seu código mais seguro contra erros de digitação, uma boa prática é validar o número digitado antes ou dentro da função. Veja como podemos adicionar essa camada de proteção:
def saudacao(hora_atual):
# Verifica se a hora está fora do intervalo real de um dia
if hora_atual < 0 or hora_atual > 23:
return "Hora inválida! Por favor, digite um valor entre 0 e 23."
if hora_atual < 12:
return "Bom dia"
elif hora_atual < 18:
return "Boa tarde"
else:
return "Boa noite"
hora_atual = int(input("Digite a hora atual (0-23): "))
print(saudacao(hora_atual))
2. Automatizando a hora com a biblioteca datetime
Quer deixar esse projeto ainda mais avançado? Em sistemas reais, nós raramente pedimos para o usuário digitar que horas são apenas para dar um bom dia. O próprio sistema pode descobrir o horário do computador!
Você pode usar uma biblioteca nativa do Python chamada datetime para fazer isso de forma 100% automática. Olhe que interessante:
from datetime import datetime
def saudacao(hora_atual):
if hora_atual < 12:
return "Bom dia"
elif hora_atual < 18:
return "Boa tarde"
else:
return "Boa noite"
# Pega automaticamente a hora atual do sistema operacional
hora_sistema = datetime.now().hour
print(f"Agora são {hora_sistema} horas.")
print(saudacao(hora_sistema))
Dessa forma, o programa roda sozinho sem que ninguém precise digitar nada no terminal.
Continue praticando as funções e compartilhando sua evolução com a gente aqui no fórum!
Espero que possa ter lhe ajudado!