Transformar regras de acesso em decisões no código, com fluxograma e estruturas de decisão.
Revisar operadores relacionais e lógicos.
Lista de exercícios de decisão (Moodle).
As regras da empresa
Administradores entram a qualquer hora. Funcionários só entram das 8h às 18h. Visitantes não entram no sistema. E ninguém entra com senha de menos de 8 caracteres ou igual ao nome de usuário. Antes do código, o grupo desenha o fluxograma dessas regras.
Decidindo no código
if, elif e else
O if executa o bloco só se a condição for verdadeira. O elif testa outra condição quando a anterior falhou. O else pega todo o resto.
O Python testa de cima para baixo e para no primeiro caminho verdadeiro.
1perfil = "funcionario"2hora = 2034if perfil == "admin":5 print("Acesso liberado")6elif perfil == "funcionario" and 8 <= hora < 18:7 print("Acesso liberado")8elif perfil == "funcionario":9 print("Fora do horário")10else:11 print("Acesso negado")1213# Fora do horário
Indentação é regra, não enfeite
Em Python, o que está dentro do if é o que está recuado (4 espaços). Sem recuo, o Python não sabe onde o bloco acaba.
Os dois-pontos : no fim da linha do if, do elif e do else são obrigatórios.
Cuidado: misturar tab e espaço dá IndentationError. Deixe o VS Code cuidar disso.
Validando a senha
Condições compostas juntam regras: len(senha) >= 8 and senha != usuario.
A função len() conta os caracteres de um texto.
1usuario = "bia"2senha = "bia"34if len(senha) < 8:5 print("Senha curta demais")6elif senha == usuario:7 print("A senha não pode ser o usuário")8else:9 print("Senha aceita")1011# Senha curta demais
Liberar ou negar o acesso
Ator: Funcionário
Objetivo: Entrar no sistema dentro das regras da empresa.
Fluxo principal
- O funcionário informa o perfil, a hora e a senha.
- O sistema confere o perfil (admin, funcionário ou visitante).
- Confere o horário permitido.
- Confere a senha.
- Libera ou nega, dizendo o motivo.
E se...
- Visitante tenta entrar: o acesso é negado, qualquer que seja a hora.
- Admin fora do horário: o acesso é liberado.
Para pensar
- Em que ordem os if e elif precisam ficar?
- Quantos testes diferentes provam que as regras funcionam?
Controle de acesso
Do fluxograma do grupo para o código. O que você marcar fica salvo neste navegador.
Decisões fora da tela
Eletrônica
Uma fechadura eletrônica com ESP32 faz exatamente isso: lê o crachá, confere o horário e decide se aciona o relé da porta.
Matemática
8 <= hora < 18 é um intervalo da matemática: fechado no 8, aberto no 18.
Artes
Um bom fluxograma de acesso parece um mapa de metrô: cada estação é uma regra, cada linha um caminho.
Terminou antes? Tem mais.
Bloqueie o acesso de qualquer perfil aos domingos. Onde essa regra precisa ficar para valer até para o admin?
Para estudar e praticar
Tutorial oficial do Python
Em português, direto da fonte.
Flowgorithm
Monte o fluxograma e veja ele rodar. Gratuito.
Ferramentapraticar NetAcadPython Essentials 1
A trilha oficial que acompanha a disciplina e prepara para a certificação PCEP. Conta para a atividade a distância.
Plataformatrilha Python-Logica/quizPyQuiz
O quiz da disciplina, com o efeito Matrix que vocês já conhecem.
QuizrevisãoLista de exercícios no Moodle e commit
Na próxima aula tem a atividade avaliativa prática. Venha com o controle de acesso funcionando.