Tecnicamente, tá meio que faltando algumas informações nessa questão, já que "antes das 12h" e "após às 18h" é meio vago sobre onde um começa e outro termina, então pra esse caso fiz o seguinte:
- "dia" - 0h até ás 11h
- "tarde" - 12h até às 17h
- "noite" - 18h até às 23h
Nesse contexto, coloquei todas as informações dentro da função mesmo:
def greeter():
    time = int(input("Insira o horário atual (0-24): "))
    if (time >= 0) & (time < 12):
        print("Bom dia!")
    elif (time >= 12) & (time < 18):
        print("Boa tarde!")
    elif (time >= 18) & (time < 23):
        print("Boa noite!")
    else:
        print("Tem um erro no processo. Tente novamente.")
        
greeter()
 
             
             Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!
 Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!