Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Controle de acesso ao escritório

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

if hora < 0 or hora > 23:
    print("Hora inválida. Digite um valor entre 0 e 23.")
elif hora >= 8 and hora <= 18:
    print("Acesso permitido.")
else:
    print("Acesso negado.")
1 resposta
solução!

Olá, Cássio. Como vai?

Parabéns por mais um excelente projeto concluído! O seu código manteve o alto padrão de organização, clareza e eficiência que você demonstrou nos exercícios anteriores.

A lógica de validação para o controle de acesso ao escritório ficou impecável. Ao combinar os limites com operadores lógicos, você cobriu todas as regras de negócio necessárias de forma elegante.

Gostaria de destacar os pontos fortes da sua solução e mostrar como as duas condições que você criou funcionam perfeitamente juntas:


Pontos Fortes do seu Código

  • Tratamento de Exceção de Horário (hora < 0 or hora > 23): Assim como no exercício do pedágio, sua preocupação em barrar dados impossíveis (como uma hora negativa ou maior que 23) logo na primeira linha mostra uma excelente maturidade de programação. O operador or foi a escolha perfeita aqui, pois se qualquer uma das duas bizarrices acontecer, o programa já avisa o usuário e encerra de forma segura.
  • Uso correto do operador and: Para a regra de permissão, o operador and foi a ferramenta ideal. O acesso ao escritório só deve ser liberado se a hora cumprir as duas condições ao mesmo tempo: ser igual ou maior que 8 E igual ou menor que 18.

Entendendo a Lógica por Trás do Fluxo

O comportamento desse script pode ser visualizado como uma esteira de segurança com três caminhos possíveis:

  1. Primeiro filtro (if): Verifica se o dado é absurdo (fora de 0-23). Se for, exibe a mensagem de erro e o fluxo para ali.
  2. Segundo filtro (elif): Se o horário for válido, ele entra no "horário comercial" (janela entre 8h e 18h). Cumprindo os dois lados, o acesso é liberado.
  3. Rede de segurança (else): Se o horário for válido (passou no primeiro teste) mas não estiver entre 8h e 18h (falhou no segundo), ele cai direto no acesso negado (madrugadas e noites).

O seu raciocínio lógico está super afiado, Cássio. Você dominou completamente o uso de if, elif, else e os operadores lógicos and e or neste módulo de Python. Parabéns pela consistência nos estudos!

Espero que possa ter lhe ajudado!