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?
- 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.
- 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!