hora_atual = int(input("Digite a hora atual (formato 24 horas): "))
if 8 <= hora_atual < 18:
print("Acesso permitido.")
else:
print("Acesso negado.")
hora_atual = int(input("Digite a hora atual (formato 24 horas): "))
if 8 <= hora_atual < 18:
print("Acesso permitido.")
else:
print("Acesso negado.")
Olá, Juliana. Como vai?
O seu código está excelente! Você resolveu o problema do controle de acesso de forma muito direta e logicamente correta. O uso da comparação encadeada 8 <= hora_atual < 18 ficou perfeito aqui, pois delimita com precisão o intervalo de tempo comercial permitido.
Diferente dos exercícios da média e do pedágio, onde as condições eram mutuamente exclusivas em escada, aqui você tinha um intervalo fixo (com início e fim bem definidos). Para esse cenário, o formato que você escolheu é a melhor prática em Python, pois lê-se exatamente como uma regra matemática de intervalo fechado.
Para agregar ainda mais valor aos seus estudos e complementar o seu aprendizado sobre condicionais, vamos analisar o que acontece nos bastidores do Python e como esse sistema poderia ser expandido em um cenário corporativo real:
A expressão 8 <= hora_atual < 18 é uma forma simplificada que o Python aceita para a seguinte operação lógica:
if hora_atual >= 8 and hora_atual < 18:
O operador lógico and exige que ambas as condições sejam verdadeiras ao mesmo tempo para que o acesso seja liberado. Se o funcionário tentar entrar às 7h ou às 19h, uma das condições falhará, jogando o fluxo direto para o bloco else (Acesso negado).
No dia a dia de uma empresa, o controle de acesso raramente depende apenas do horário. Geralmente, precisamos validar também o cargo ou se a pessoa possui uma credencial de administrador para entrar fora do horário comercial (como equipes de manutenção ou segurança).
Veja como poderíamos refatorar o seu código para aceitar essa nova regra de negócio usando os operadores and, or e variáveis booleanas (True/False):
hora_atual = int(input("Digite a hora atual (0-23): "))
eh_administrador = input("Você possui credencial de administrador? (s/n): ").lower() == 's'
# Regras de negócio limpas
horario_comercial = 8 <= hora_atual < 18
# O acesso é permitido se estiver no horário comercial OU se a pessoa for administrador
if horario_comercial or eh_administrador:
print("Acesso permitido.")
else:
print("Acesso negado. Fora do horário comercial e sem credencial especial.")
Dica técnica: O uso do .lower() == 's' no final do input é uma excelente prática para blindar o seu código contra erros de digitação do usuário, garantindo que o programa entenda a resposta tanto se ele digitar "S" maiúsculo quanto "s" minúsculo.
Parabéns por concluir mais essa atividade com maestria. Você dominou completamente a base das estruturas condicionais em Python!
Espero que possa ter lhe ajudado!