Automatizar repetições com while e simular um mecanismo real de segurança.
Revisar estruturas de decisão.
Exercícios no GitHub.
Três chances e a conta trava
Banco, e-mail, rede social: erre a senha três vezes e a conta é bloqueada. Como o sistema sabe quantas vezes você errou e quando parar de perguntar? Com um laço e um contador. Antes, a correção comentada da avaliação.
Laços que sabem parar
while: repete enquanto for verdade
O while repete o bloco enquanto a condição for verdadeira. A cada volta, ele testa de novo.
A condição de parada precisa, em algum momento, ficar falsa. Senão, é laço infinito.
1contagem = 32while contagem > 0:3 print(contagem)4 contagem = contagem - 15print("Fogo!")67# 38# 29# 110# Fogo!
Contadores e acumuladores
Contador soma 1 a cada volta: conta quantas vezes algo aconteceu. Acumulador soma um valor qualquer: guarda o total.
x += 1 é o atalho para x = x + 1.
1total = 02vezes = 03while vezes < 4:4 vezes += 1 # contador5 total += vezes * 10 # acumulador6print(vezes, total) # 4 100
O bloqueio de login
O laço junta duas condições: ainda tem tentativa e a senha ainda não está certa. Quando uma delas muda, ele para. Depois do laço, um if conta o final da história.
Cuidado: esqueceu de somar o contador? O laço nunca para. No terminal, Ctrl + C interrompe.
1SENHA_CERTA = "Py@2026"2tentativas = 03senha = ""45while tentativas < 3 and senha != SENHA_CERTA:6 senha = input("Senha: ")7 tentativas += 189if senha == SENHA_CERTA:10 print("Bem-vindo!")11else:12 print("Conta bloqueada")
Validando a entrada
Outro uso clássico: perguntar de novo até o usuário digitar algo válido. O método isdigit() diz se o texto só tem números.
1idade = input("Idade: ")2while not idade.isdigit():3 print("Digite só números, por favor.")4 idade = input("Idade: ")5idade = int(idade)
Três chances e a conta trava
Ator: Funcionário
Objetivo: Entrar no sistema, mesmo errando a senha uma ou duas vezes.
Fluxo principal
- O sistema pede a senha.
- Se errar, mostra quantas tentativas restam e pede de novo.
- Se acertar, libera a entrada.
- Na terceira senha errada, bloqueia a conta.
E se...
- O funcionário digita só espaços: o sistema conta como tentativa? Decidam a regra.
Para pensar
- Qual é a condição de parada do while?
- Onde fica o contador, e o que acontece se ele não for somado?
Login com bloqueio
Individual, depois teste de mesa em dupla. O que você marcar fica salvo neste navegador.
Laços fora da tela
Eletrônica
O código de um Arduino roda num laço eterno de propósito: o loop() lê o sensor, decide e repete, milhares de vezes por segundo.
Matemática
Um acumulador é uma soma parcial: a cada volta, o total anterior mais o termo novo. É o somatório da matemática.
Tecnologia
Limitar tentativas é a defesa mais simples contra ataques de força bruta, aqueles da conta da aula 6.
Terminou antes? Tem mais.
Depois do bloqueio, faça o programa esperar 5 segundos antes de liberar mais uma tentativa. Dica: import time e time.sleep(5).
Para estudar e praticar
Tutorial oficial do Python
Em português, direto da fonte.
Python 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/atividade-remotaAtividade remota
Exercícios com correção automática, no próprio site.
Commit no GitHub
Na próxima aula, o laço que sabe de antemão quantas voltas vai dar: o for.