Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

06 Faça como eu fiz: saudação personalizada

def periodo_dia(hora):
    if hora >= 0 and hora < 12:
        return "Bom dia!"
    elif hora >= 12 and hora < 18:
        return "Boa tarde!"
    elif hora >= 18 and hora <= 23:
        return "Boa noite!"
    else:
        return "Hora inválida!"

while True: 
    try:
        hora_atual = int(input("Digite a hora atual (0-23): "))
        resultado_hora_atual = periodo_dia(hora_atual)

        if resultado_hora_atual == "Hora inválida!":
            print("Entrada inválida. Por favor, digite um número entre 0 e 23.")
            
        else:
            print(resultado_hora_atual) 
            break 
    except ValueError:
        print("Entrada inválida. Por favor, digite apenas números inteiros.")
        
Digite a hora atual (0-23): 15
Boa tarde!
1 resposta
solução!

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.

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