Oi, Carlos! Como vai?
Com base no que você explicou, ficou muito interessante a forma como você organizou a função periodo_dia e tratou entradas inválidas com try/except. O uso do while True com break também mostra um bom controle de fluxo, garantindo que o programa só finalize quando a entrada for válida.
Uma dica interessante para o futuro é usar o método strip() junto com input() para evitar erros com espaços extras na entrada:
hora = int(input('Digite a hora: ').strip())
print(hora)
Esse código remove espaços antes e depois da entrada, evitando erros comuns ao converter para número.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!