Faça um programa que peça ao usuário uma senha. A senha correta é engenharia.
Usando while, permita que o usuário tente digitar a senha no máximo 3 vezes.
O programa deve mostrar:
Acesso permitido
caso a senha esteja correta.
Caso o usuário erre as 3 tentativas, mostre:
Acesso bloqueado

Passo 1

O enunciado pede que eu escreva um programa que:
  • peça ao usuário uma senha;
  • a senha correta é \text{engenharia};
  • usando \text{while}, permita no máximo 3 tentativas de digitar a senha;
  • se a senha estiver correta em alguma das tentativas, o programa deve mostrar exatamente:
\text{Acesso permitido}
  • se o usuário errar as 3 tentativas, o programa deve mostrar exatamente:
\text{Acesso bloqueado}
Informações relevantes dadas:
  • senha correta: \text{engenharia};
  • número máximo de tentativas: \,3.

Passo 2

Planejar a solução (o que o programa precisa fazer, em palavras simples):
  • manter um contador de tentativas (começando em zero);
  • enquanto o contador for menor que 3, pedir a senha ao usuário;
  • comparar a senha digitada com a senha correta;
  • se for igual, mostrar \text{Acesso permitido} e encerrar o laço/programma;
  • se não for igual, incrementar o contador e, se chegar a 3 sem acerto, mostrar \text{Acesso bloqueado}.
Variáveis que vamos usar e o que significam:
  • \text{max\_tentativas}: número máximo de tentativas permitidas (valor \,3).
  • \text{tentativas}: contador atual de tentativas já usadas (começa em \,0).
  • \text{senha\_correta}: string que contém a senha certa ( \text{"engenharia"}).
  • \text{acertou}: variável booleana que indica se o usuário acertou a senha (inicia como \text{False}).

Passo 3

Conceito do \text{while} (explicação didática):
  • \text{while} repete um bloco de código enquanto uma condição lógica for verdadeira.
  • Sintaxe básica em Python:
\text{while condição:}çã
\quad\text{bloco de código}ó
  • No nosso caso, usaremos a condição \text{tentativas < max\_tentativas} para limitar as tentativas a 3.
  • Dentro do laço vamos ler a senha com \text{input()}, comparar com \text{==} (comparação de strings) e usar \text{break} para sair do laço se a senha estiver correta.

Passo 4

Detalhando cada passo dentro do laço e mostrando o código correspondente (pedacinhos que você pode entender e escrever na prova):
Inicialização:
  • definir \text{max\_tentativas = 3},
  • definir \text{tentativas = 0},
  • definir \text{senha\_correta = "engenharia"},
  • definir \text{acertou = False}.
Leitura e verificação dentro do \text{while}:
  • condição do laço: \text{while tentativas < max\_tentativas:}.
  • dentro do laço:
    • pedir a senha: \text{senha = input("Digite a senha: ").strip()}.
      • explicação: \text{input()} lê uma linha do usuário; \text{.strip()} remove espaços extras no começo/fim para evitar erros por espaços.
    • comparar: \text{if senha == senha\_correta:}
      • se verdadeiro: \text{print("Acesso permitido")}, \text{acertou = True}, e \text{break} (sai do laço).
      • senão: \text{tentativas += 1} (incrementa o contador e o laço repete se permitido).

Passo 5

Tratar o caso em que as 3 tentativas foram usadas sem sucesso:
  • após o laço \text{while}, verificar se \text{acertou} é \text{False}.
  • se for \text{False}, então o usuário não acertou em nenhuma das tentativas e devemos imprimir:
\text{Acesso bloqueado}
Por que usar a variável \text{acertou}? Porque quando usamos \text{break} para sair do laço ao acertar, precisamos saber se saímos por acerto ou porque o laço terminou por esgotar as tentativas. A variável \text{acertou} registra isso de forma clara.

Passo 6

Observações práticas e dicas para prova:
  • lembrar de inicializar o contador antes do laço; se esquecer, código dará erro.
  • não confunda a comparação de strings ( \text{==}) com atribuição ( \text{=}).
  • usar \text{.strip()} é uma boa ideia para evitar que um espaço extra faça a comparação falhar; não foi pedido para ignorar maiúsculas/minúsculas, então o correto aqui é comparar exatamente com \text{"engenharia"}.
  • no enunciado não é pedido mostrar mensagens a cada erro; por isso o código abaixo só mostra as mensagens finais exigidas.

Passo 7

Programa completo (junção de todas as partes mostradas acima). Este é o código final que você pode escrever e executar:

Resposta

max_tentativas = 3
tentativas = 0
senha_correta = “engenharia”
acertou = False
while tentativas < max_tentativas:
senha = input("Digite a senha: ").strip()
if senha == senha_correta:
print(“Acesso permitido”)
acertou = True
break
tentativas += 1
if not acertou:
print(“Acesso bloqueado”)

Exercícios relacionados