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()