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!