Oii, Ricardo.
Sua função ficou bem organizada e clara para retornar a saudação correta de acordo com a hora. Gostei de como você usou as condições encadeadas para diferenciar os períodos do dia.  
Uma dica interessante para o futuro é usar elif em vez de vários if, pois isso deixa o código mais legível e evita verificações desnecessárias. 
def saudacao(hora):
    if hora <= 12:
        mensagem = "Bom dia"
    elif hora <= 18:
        mensagem = "Boa tarde"
    else:
        mensagem = "Boa noite"
    return mensagem
Esse ajuste melhora a eficiência porque o programa para a checagem assim que encontra a condição verdadeira.  
  
   Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!