Python while: executar código com condição verdadeira!

A instrução Python while é uma das estruturas de repetição disponíveis na linguagem Python, que permite executar um bloco de códigos enquanto uma determinada condição for verdadeira. Esse é um comando muito utilizado pelas pessoas programadoras no desenvolvimento de aplicações.

Apesar desse ser um comando comum nas linguagens de programação, cada uma delas contém suas particularidades e isso não é diferente em Python. Para demonstrar as principais características desse recurso, preparamos este post com os seguintes tópicos:

Continue com a gente e boa leitura!

O que é o laço Python while e para que serve?

O laço while executa um ou mais comandos até que uma condição seja verdadeira. Na prática, a instrução contém uma expressão logo no início, que é avaliada a cada loop, e um bloco de códigos que é executado enquanto a condição for verdadeira. Veja a sintaxe do comando:

while <condição>:
   <executar_instruções>
else:  
   <executar_outras_instruções>

Geralmente, o laço while é utilizado para repetir uma ou várias instruções por determinado número de vezes. Para isso, usamos uma variável com a função de contador para controlar o número de repetições dos comandos, ou uma expressão para determinar quando a condição for verdadeira ou falsa.

Como usar o laço while em Python?

Como mencionamos, para utilizar o laço while, precisamos de uma expressão de controle, que utiliza uma variável de apoio para indicar o ponto de parada da estrutura de repetição. Veja um exemplo:

i = 1
while (i <= 5):
    print(i)
    i += 1
'''
Resultado:
1
2
3
4
5
'''

Perceba que utilizamos a variável “i”, que funciona como um contador e é usada para controlar a repetição do loop while. Veja também que incrementamos essa variável dentro das instruções do loop. Isso faz com que a condição de avaliação encontre o ponto de parada e encerre o loop.

Vale ressaltar que é fundamental indicarmos o ponto de parada na instrução while.Caso contrário,teremos uma falha que faz com que o programa fique em “loop infinito”, ou seja, repetindo o bloco de código sem parar. Existem diferentes formas de fazer isso, mas você pode conferir algumas delas a seguir.

Definindo onde o loop deve parar: break

A instrução break indica um ponto de parada para o loop while. Entretanto, ela deve ser utilizada em conjunto com uma estrutura condicional, como o comando if. Dessa forma, é possível avaliar uma determinada condição dentro do loop, que servirá como um ponto de interrupção da repetição. Veja um código de exemplo:

dias_semana = ['segunda-feira', 'terça-feira', 'quarta-feira']
i = 0
while dias_semana:
    if i == 1:
        print("O dia da semana que corresponde a posição", i, "da lista dias_semana é:", dias_semana[i])
        break
    i += 1
'''
Resultado:
O dia da semana que corresponde a posição 1 da lista dias_semana é: terça-feira
'''

No código acima, utilizamos uma lista com três dias da semana e criamos a variável “i” para acessarmos os elementos. Perceba que utilizamos o comando “while dias_semana”. Como essa variável é uma lista, o compilador entende que deverá percorrer todos os elementos existentes nela. Portanto, é como se disséssemos a ele: enquanto houver elementos na lista, faça alguma coisa.

Perceba que utilizamos a estrutura condicional if para identificarmos o índice da lista igual a 1 e acessamos o elemento de acordo com índice correspondente. Por utilizar a instrução break, o loop será encerrado quando a variável i for igual a 1.

Interrompendo o loop e continuando no próximo objeto: continue

A instrução continue é utilizada no comando while para continuar a execução do loop após avaliar uma determinada condição e executar ou não um bloco de códigos. Assim como o break, ela deve ser usada em conjunto com uma estrutura condicional, como o if. Veja o código fonte abaixo:

dias_semana = ['segunda-feira', 'terça-feira', 'quarta-feira']
i = -1
while dias_semana:
    i += 1
    if i == 0:
        print("O dia da semana da posição", i, "é :", dias_semana[i])
        continue
    if i == 1:
        print("O dia da semana da posição", i, "é :", dias_semana[i])
    if i == 2:
        print("O dia da semana da posição", i, "é :", dias_semana[i])
        break
    print("Índice =", i)
'''
Resultado:
O dia da semana da posição 0 é : segunda-feira
O dia da semana da posição 1 é : terça-feira
Índice = 1
O dia da semana da posição 2 é : quarta-feira
'''

Nesse exemplo, modificamos um pouco o código anterior. Perceba que inicializamos a variável “i” com o valor “-1” e fizemos a incrementação da variável logo no início do loop. Isso foi feito para evitarmos a duplicação do comando de incremento (i += 1) em cada estrutura condicional if, pois, ao encontrar a instrução continue, o loop retorna para o próximo elemento.

Portanto, se colocássemos o contador após as estruturas condicionais if, entraríamos em um “loop eterno” logo na primeira condição avaliada. Outra razão para iniciarmos a variável “i” como “-1” é porque precisamos acessar a primeira posição da lista, que é representada pelo índice 0.

Perceba também que inserimos uma instrução print() após todos os comandos if e ela só foi executada quando o índice era igual a 1. Isso porque os pontos de parada break e continue interromperam o fluxo de execução do código, pois o break sai do loop e o continue vai para o próximo elemento.

Executando um código quando a condição é falsa: while else

A instrução else é um comando opcional no loop while. Na prática, ela só é executada quando a condição testada no loop não for verdadeira. Veja o algoritmo a seguir:

i = 1
while i <= 5:
    print(i)
    i += 1
else:
    print("Variável i =", i)
    print("Final do loop while!")
'''
Resultado:
1
2
3
4
5
Variável i = 6
Final do loop while!
'''

Perceba que a instrução print() no comando else só foi executada após a variável “i” ter o valor igual a 6. Vale ressaltar que, se ao executarmos o teste pela primeira vez e a condição for falsa, as instruções do comando else serão executadas. Veja o código abaixo:

i = 6
while i <= 5:
    print(i)
    i += 1
else:
    print("Variável i =", i)
    print("Final do loop while")
'''
Resultado:
Variável i = 6
Final do loop while
'''

O comando Python while é uma estrutura de repetição que podemos utilizar para repetirmos um determinado bloco de códigos por várias vezes. Entretanto, é preciso atenção ao utilizar esse recurso para evitar a repetição infinita. Apesar disso, existem diversas formas de interromper a execução do loop, como o comando break, a instrução continue, além do uso de variáveis de controle.

Gostou do nosso conteúdo sobre o comando Python do while? Então confira nosso post sobre o que são tuplas em Python e como manipulá-las!