1
resposta

Controle de acesso ao escritório

Mariana é responsável por liberar o acesso ao escritório e precisa de um programa que verifique se os funcionários podem entrar. Para isso, ela usará o horário atual. O escritório só permite acesso entre 8h e 18h. Crie um programa que receba a hora atual como entrada (em formato de 24 horas) e exiba uma mensagem informando se o acesso é permitido ou negado.

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

if 8 <= hora_atual < 18:
    print("Acesso permitido.")
else:
    print("Acesso negado.")
    
Digite a hora atual (formato 24h): 4
Acesso negado.
1 resposta

Olá, Andressa. Como vai?

Mais uma resolução certeira! Você aplicou perfeitamente o conceito de intervalo numérico para controlar o fluxo de acesso.

O uso do operador de comparação encadeado 8 <= hora_atual < 18 é uma das características que torna o Python tão amigável, pois se lê quase como uma frase em linguagem natural. No seu teste, como 4 não está dentro do intervalo estabelecido, o programa desviou corretamente para o bloco else.

Para elevar ainda mais o nível do seu código, aqui estão algumas sugestões focadas em robustez e melhoria da experiência do usuário:

  • Validação de Entrada: O que aconteceria se o usuário digitasse "25" ou "-1"? Em sistemas reais, é importante garantir que a hora esteja entre 0 e 23.
  • Acesso em Tempo Real: No dia a dia, em vez de pedir para o usuário digitar a hora, você pode fazer o Python "olhar" para o relógio do sistema usando a biblioteca datetime.

Veja como o programa ficaria com essas implementações:

from datetime import datetime

# Opção 1: Pegando a hora automática do computador
hora_agora = datetime.now().hour

# Opção 2: Validação da entrada manual (caso queira manter o input)
try:
    hora_atual = int(input("Digite a hora atual (0-23): "))
    
    if 0 <= hora_atual <= 23:
        if 8 <= hora_atual < 18:
            print(f"São {hora_atual}h. Acesso permitido!")
        else:
            print(f"São {hora_atual}h. Acesso negado: fora do horário comercial.")
    else:
        print("Erro: Por favor, digite uma hora válida entre 0 e 23.")

except ValueError:
    print("Erro: Digite apenas números inteiros.")

Por que essas mudanças são importantes?

  1. Experiência do Usuário (UX): Ao informar o motivo do "Acesso Negado" (fora do horário comercial), o sistema se torna muito mais claro para quem o utiliza.
  2. Segurança de Dados: O bloco try/except evita que o programa pare de funcionar (crash) caso alguém digite uma letra por engano.

Dominar as condicionais é o primeiro passo para criar sistemas de segurança, automação residencial e muito mais. Continue praticando!

Espero que possa ter lhe ajudado!