Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Controle de acesso ao escritório

hora_atual = int(input("Digite a hora atual (no formato 24 horas):"))

try:
  hora_atual = int(hora_atual)
  if 8 <= hora_atual < 18:
    print("Acesso permitido.")
  else:
    print("Acesso negado.")
except ValueError:
  print("Por favor, digite um valor numérico válido.")
2 respostas
solução!

Olá, Marcelo!

Parabéns por concluir o projeto Controle de acesso ao escritório. Ficou nítido como você organizou o raciocínio para criar uma trava de segurança baseada no tempo, além de se preocupar em tratar possíveis erros de digitação do usuário.

Sua solução apresenta uma estrutura lógica muito bem desenhada para o intervalo de tempo. A forma como você escreveu a condição 8 <= hora_atual < 18 é o que chamamos de encadeamento de operadores, algo que deixa o código limpo e com uma leitura super natural no Python. O uso do bloco try/except capturando o ValueError é uma excelente prática para evitar que o programa pare de funcionar inesperadamente caso alguém digite uma letra.

Como ponto de melhoria técnica no fluxo, note que a conversão int(input(...)) acontece logo na primeira linha do código, antes do bloco try. Se o usuário digitar uma letra ali, o programa apresentará o erro imediatamente e nem chegará a entrar no try/except. Para corrigir isso e garantir a proteção, basta deixar o input receber o texto puro primeiro e realizar a conversão exclusivamente dentro do bloco try.

Veja este pequeno ajuste de organização:

# O input recebe o texto sem converter imediatamente
entrada = input("Digite a hora atual (no formato 24 horas): ")

try:
  # A conversão e a lógica ficam protegidas aqui dentro
  hora_atual = int(entrada)
  
  if 8 <= hora_atual < 18:
    print("Acesso permitido.")
  else:
    print("Acesso negado.")
except ValueError:
  print("Por favor, digite um valor numérico válido.")

Essa pequena mudança garante que a sua validação funcione exatamente como você planejou.

Na sua visão, você acredita que fazer o programa pedir a hora novamente em caso de erro traria uma experiência melhor para o usuário do que apenas encerrar com a mensagem de alerta?

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

Lorena falha minha mesmo colcoar fora do try obrigado pelo feedback