1
resposta

[Sugestão] Faça como eu fiz: saudação personalizada

from datetime import datetime

def obter_dados_usuario():
    nome = input("Digite seu nome: ")
    
    # Solicitando a data e hora como texto (String)
    data_str = input("Digite a data (dd/mm/aaaa): ")   # Ex: 15/02/2026
    hora_str = input("Digite a hora (hh:mm): ")        # Ex: 14:30
    
    # Juntamos as duas strings em uma só para facilitar a conversão
    texto_completo = f"{data_str} {hora_str}"
    
    try:
        # O strptime converte o texto no formato especificado para um objeto datetime real
        # %d = dia, %m = mês, %Y = ano(4 dígitos), %H = hora, %M = minuto
        data_convertida = datetime.strptime(texto_completo, "%d/%m/%Y %H:%M")
        return nome, data_convertida
    except ValueError:
        # Se o usuário digitar errado (ex: 30/02 ou letras), o programa avisa
        print("\n[ERRO] Formato inválido! Use dia/mês/ano e hora:minuto.")
        return None, None

def dar_boas_vindas(nome, data_dt):
    # Se a data não foi convertida (deu erro), paramos a função
    if data_dt is None:
        return

    # Extraímos a hora do objeto que criamos
    hora = data_dt.hour
    
    if 5 <= hora < 12:
        saudacao = "Bom dia"
    elif 12 <= hora < 18:
        saudacao = "Boa tarde"
    else:
        saudacao = "Boa noite"
    
    # Exibe o resultado formatado
    print("-" * 30)
    print(f"{saudacao}, {nome.capitalize()}!")
    # O strftime faz o inverso: transforma a data em texto bonito para exibir
    #print(f"Data registrada: {data_dt.strftime('%d/%m/%Y')}")
    #print(f"Horário registrado: {data_dt.strftime('%H:%M')}")
    print("-" * 30)

if __name__ == "__main__":
    nome, data_usuario = obter_dados_usuario()
    if nome and data_usuario:
        dar_boas_vindas(nome, data_usuario)
1 resposta

Olá, Marinaldo! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de strptime para converter texto em objeto datetime, utilizou muito bem a lógica condicional para definir a saudação conforme o horário e ainda compreendeu a importância de tratar erros com try/except para garantir robustez no programa.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!