Quando estamos desenvolvendo programas, é muito comum precisarmos repetir uma ação até que determinada condição seja atendida.

Imagine um sistema de login. Se o usuário digitar a senha errada, o programa deve pedir a senha novamente. Somente quando a senha correta for informada o acesso será liberado.

É exatamente esse tipo de situação que o laço while resolve.

Neste artigo, vamos utilizar um exemplo simples para entender como essa estrutura funciona na prática.


O que é o while?

O while é uma estrutura de repetição que executa um bloco de código enquanto uma condição for verdadeira.

Sua sintaxe é bastante simples:

while condição:
    # código executado enquanto a condição for verdadeira

O Python verifica a condição antes de cada repetição.

  • Se ela for True, o bloco é executado novamente.

  • Se ela for False, o laço termina e o programa continua a execução.


O exercício

Veja o código completo:

# Senha correta que o usuário deve digitar
senha_correta = "python123"

# Contador de tentativas
tentativas = 0

# Pede a senha pela primeira vez
senha = input("Digite a senha: ")

# Enquanto a senha for diferente da correta,
# o código dentro do while continuará executando.
while senha != senha_correta:

    # Soma 1 ao número de tentativas
    tentativas += 1

    # Informa que a senha está incorreta
    print("Senha incorreta. Tente novamente.")

    # Pede a senha novamente
    senha = input("Digite a senha: ")

# Quando o while termina, significa que a senha está correta.
# Como a tentativa correta ainda não foi contada,
# incrementamos mais uma vez.
tentativas += 1

# Exibe a mensagem de sucesso
print("Acesso permitido.")

# Mostra quantas tentativas foram necessárias
print(f"Tentativas: {tentativas}")

Entendendo passo a passo

Definindo a senha correta

senha_correta = "python123"

Criamos uma variável que armazena a senha válida.

Mais adiante, o programa irá comparar o que o usuário digitou com esse valor.


Criando um contador

tentativas = 0

Essa variável registra quantas vezes o usuário tentou acessar o sistema.

Sempre que a senha estiver incorreta, esse número será incrementado.


Solicitando a senha

senha = input("Digite a senha: ")

Antes de iniciar o while, precisamos obter um valor para comparar.

Por isso, a primeira leitura é feita fora do laço.


O coração do programa: o while

while senha != senha_correta:

Essa condição pode ser lida da seguinte forma:

"Enquanto a senha digitada for diferente da senha correta..."

Enquanto isso for verdadeiro, o bloco será executado.


O que acontece dentro do while?

1. Conta a tentativa

tentativas += 1

Cada erro aumenta o contador.

É o mesmo que escrever:

tentativas = tentativas + 1

2. Exibe uma mensagem

print("Senha incorreta. Tente novamente.")

O usuário é informado de que a senha está errada.


3. Solicita uma nova senha

senha = input("Digite a senha: ")

Esse passo é fundamental.

Sem ele, a variável senha nunca mudaria.

Como consequência, a condição do while permaneceria verdadeira para sempre, gerando um laço infinito.


Quando o while termina?

O laço só termina quando o usuário digita:

python123

Nesse momento:

senha != senha_correta

passa a ser:

False

Como a condição ficou falsa, o while é encerrado.


Contando a última tentativa

Após sair do laço, encontramos:

tentativas += 1

Por que isso é necessário?

Porque dentro do while apenas as tentativas incorretas foram contabilizadas.

A tentativa correta acontece justamente quando o laço termina.

Por isso, adicionamos mais uma unidade ao contador.


Mensagem de sucesso

Agora o acesso pode ser liberado:

print("Acesso permitido.")

Depois mostramos o número de tentativas:

print(f"Tentativas: {tentativas}")

Se o usuário errar duas vezes e acertar na terceira, o resultado será:

Digite a senha: 123
Senha incorreta. Tente novamente.

Digite a senha: abc
Senha incorreta. Tente novamente.

Digite a senha: python123

Acesso permitido.
Tentativas: 3

Fluxo de execução

O funcionamento do programa pode ser resumido assim:

Início

↓

Pede a senha

↓

Senha está correta?

↓

Não
│
├── Conta tentativa
├── Exibe erro
├── Pede nova senha
└── Volta ao teste

↓

Sim

↓

Conta a tentativa correta

↓

Acesso permitido

↓

Mostra o total de tentativas

↓

Fim

O que aprendemos?

Neste exercício vimos diversos conceitos importantes:

  • Como utilizar o laço while.

  • Como repetir um bloco de código enquanto uma condição for verdadeira.

  • Como comparar valores utilizando !=.

  • Como atualizar variáveis durante a repetição.

  • Como evitar um laço infinito solicitando um novo valor dentro do while.

  • Como utilizar um contador para registrar o número de tentativas.


Conclusão

O while é uma das estruturas mais importantes da programação. Ele é utilizado sempre que não sabemos exatamente quantas vezes uma ação precisará ser repetida.

Neste exemplo, o programa continua solicitando a senha até que o usuário informe o valor correto. Esse é um cenário muito comum em sistemas de autenticação, menus interativos, validação de dados e diversas outras aplicações.

Dominar o while é um passo importante para desenvolver programas mais inteligentes e interativos em Python. Quanto mais você praticar com exemplos como este, mais natural será utilizar estruturas de repetição em seus próprios projetos.