Curso
O laço while é um pouco parecido com uma declaração if: ele executa o código dentro dele se a condição for verdadeira. Porém, ao contrário do if, o while continua executando o código repetidamente enquanto a condição permanecer verdadeira.
O laço while

A sintaxe do laço while é muito parecida com a do if, como você pode ver acima. O while não é o mais comum, mas em alguns casos ele é extremamente útil.
Exemplo
Suponha que você esteja calculando numericamente um modelo com base nos seus dados. Normalmente, isso envolve repetir os mesmos passos até que o erro entre o modelo e os dados fique abaixo de um limite. Quando você consegue reformular o problema como repetir uma ação até que uma condição seja atendida, o while costuma ser a melhor escolha.
No exemplo abaixo, você começa com um erro igual a 50.0. Em seguida, vai escrever um laço while; na parte da condição, colocamos error > 1, para que o laço rode novamente enquanto o erro estiver acima de 1. Dentro do while, você divide o erro por quatro e atualiza a variável de erro. Quando executamos pela primeira vez, obtemos 12.5.

O Python então volta para a condição do while com o novo erro igual a 12.5. A condição novamente será verdadeira e o código é executado.

O Python volta mais uma vez para a condição do while e tenta executar o código de novo. Como 3.125 é maior que 1, o cálculo é feito.

Por fim, a nova condição do while fica menor que 1, então o código resulta em erro e não roda.

Este exemplo vai ser útil porque é hora de você construir um laço while por conta própria! Vamos criar um while que implementa um sistema de controle bem básico para um pêndulo invertido. Se houver um desvio da posição perfeitamente vertical, o while vai corrigir esse desvio aos poucos.
Observe que, se o seu while demorar demais para terminar, pode haver um erro. Em especial, lembre-se de indentar corretamente o conteúdo do laço!
Exemplo de erro com while (execução contínua)
Suponha que você comente ou remova as atualizações do valor de erro e execute o script novamente. O erro não será atualizado e a condição será sempre verdadeira. Isso fará com que o while rode para sempre.

Se você cometer esse erro no seu sistema, será necessário interromper o programa Python pressionando as teclas Control + C.
Exemplo
No exemplo abaixo, você vai criar a variável offset com valor inicial 8. Depois, escreverá um laço while que continua executando enquanto offset for diferente de 0.
Dentro do while:
- Imprima a frase
"correcting...". - Em seguida, diminua o valor de
offsetem 1. Você pode fazer isso comoffset = offset - 1. - Por fim, ainda dentro do laço, imprima
offsetpara ver como ele muda.

Ao executar o programa acima, ele produz o seguinte resultado:
correcting...
7
correcting...
6
correcting...
5
correcting...
4
correcting...
3
correcting...
2
correcting...
1
correcting...
0
Para saber mais sobre laços while, assista a este vídeo do nosso curso Intermediate Python.
Este conteúdo foi extraído do curso Intermediate Python da DataCamp, por Hugo Bowne-Anderson.
Confira também nosso tutorial de laços em Python e o tutorial Como emular um laço Do-While em Python para continuar aprendendo e praticando laços em Python até dominar o assunto.