1
resposta

Faça como eu fiz: saudação personalizada

Beatriz está desenvolvendo um sistema de atendimento para um site de serviços. Ela deseja criar um programa que exiba uma saudação personalizada dependendo da hora do dia que o usuário acessa a plataforma. O sistema deverá ter a seguinte regra:

  • Se for antes das 12h, exibir "Bom dia";

  • Entre 12h e 18h, exibir "Boa tarde";

  • Após 18h, exibir "Boa noite".

Exemplo de entrada:

Digite a hora atual (0-23): 15 

Saída esperada:

Boa tarde! 
from datetime import datetime

def saudacao():
    hora_atual = datetime.now().hour
    
    if hora_atual < 12:
        return "Bom dia!"
    elif 12 <= hora_atual < 18:
        return "Boa tarde!"
    else:
        return "Boa noite!"

print(saudacao())

Boa noite!
1 resposta

Olá, Andressa. Como vai?

O seu código ficou excelente e resolve muito bem o problema utilizando a biblioteca interna datetime do Python para capturar a hora real do sistema. Essa é uma ótima prática no mundo real, pois evita que o usuário precise digitar o horário manualmente.

Analisando a estrutura que você montou, as condições do if, elif e else estão perfeitas e cobrem todas as faixas de horário do dia de forma limpa e legível.

Para enriquecer ainda mais o seu aprendizado e complementar a atividade, podemos pensar em duas melhorias práticas para esse código:

1. Tornar a função mais flexível
Do jeito que está, a função sempre pega a hora atual do computador. Se quisermos testar se a função realmente funciona para o cenário da Beatriz (onde o usuário digita a hora ou o sistema recebe um horário específico), podemos passar a hora como um parâmetro opcional.

2. Tratar possíveis erros
Se recebermos uma hora vinda de um input do usuário, é uma boa prática garantir que o valor esteja entre 0 e 23 antes de aplicar as condições.

Veja um exemplo de como implementar essas ideias:

from datetime import datetime

def saudacao(hora=None):
    # Se nenhuma hora for passada, usamos a hora atual do sistema
    if hora is None:
        hora = datetime.now().hour
        
    # Validação para garantir que a hora seja válida
    if not (0 <= hora <= 23):
        return "Hora inválida! Por favor, use um valor entre 0 e 23."
        
    if hora < 12:
        return "Bom dia!"
    elif hora < 18:
        return "Boa tarde!"
    else:
        return "Boa noite!"

# Testando com a hora do sistema
print(saudacao())

# Testando o cenário do exemplo da atividade (Entrada: 15)
print(saudacao(15))

Note que no elif hora < 18 não precisamos colocar 12 <= hora, porque se o código chegou até essa linha, o Python já garantiu no if anterior que a hora não é menor que 12. Isso deixa o seu código ainda mais enxuto.

Parabéns pela dedicação e por praticar o uso de funções.

Espero que possa ter lhe ajudado!