Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução

    if hora < 12:
        return 'Bom Dia'
    elif 12 >= hora or hora <= 18:
        return 'Boa Tarde'
    else:
        return 'Boa Noite'
        
hora_atual = int(input('Digite a hora atual (0-23): '))
saudacao = saudacao_personalizada(hora_atual)

print(f'{saudacao}!')
1 resposta

Oi, Maria, como vai?

O seu código está bem encaminhado, mas apresenta um detalhe importante na lógica do bloco elif. A expressão 12 >= hora or hora <= 18 aceita qualquer número menor ou igual a 18 devido ao operador or, o que gera comportamentos inesperados. Além disso, a função saudacao_personalizada precisa ser declarada com a palavra-chave def para encapsular os retornos.

Para corrigir a condição do intervalo entre 12h e 18h, o ideal é combinar as duas condições usando o operador and, garantindo que o valor atenda a ambos os requisitos simultaneamente.

Parabéns pelo empenho na resolução da atividade e o fórum continua totalmente à disposição para suas dúvidas.

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