Como utilizar loops em Python: For e While
Aprenda como utilizar os loops For e While em Python para automatizar suas tarefas. Veja exemplos e entenda como funciona cada tipo de loop. Otimize sua programação!
As estruturas de repetição for
e while
do Python
são responsáveis por fazer algo que na ciência da computação é
normalmente chamado iteração.
Iteração
Iteração(“Iteration”) significa que um bloco de código será executado repetidas vezes.
A implementação de uma estrutura de iteração é comumente chamada loop
.
Existem dois estilos de iteração: indefinida e definida.
Iteração indefinida
Também chamada indeterminada, significa que a quantidade de vezes que o bloco de código será executado não está previamente definida, o código será executado enquanto uma condição não for atendida.
Em Python
a estrutura while
é utilizada nesses casos, traduzindo do inglês, while
significa “enquanto”.
Iteração definida
Também chamada determinada, significa que a quantidade de vezes que o bloco de código será executado já está previamente definida quando o loop for iniciado.
Em Python
, a estrutura for
é utilizada nesses casos, traduzindo do inglês, for
significa “para”.
Utilizando o while em Python
A estrutura while
é muito útil, um exemplo básico de como utilizar está apresentado logo abaixo:
contador = 0
while contador <= 5:
contador += 1
print(contador)
Nesse exemplo, a variável contador foi iniciada com 0, em cada iteração será adicionado um ao seu valor e será exibido na tela logo em seguida, esse bloco será executado enquanto contador for menor ou igual a cinco.
A verificação é realizada ao final de cada execução do bloco de código dentro do while
.
break: encerrando a execução do while
O operador break
em Python
é utilizado para interromper o loop
imediatamente, poderíamos refazer o exemplo
mostrado anteriormente utilizando o break
da seguinte forma:
contador = 0
while contador:
contador += 1
print(contador)
if contador <= 5:
break
O resultado ao executar o código será o mesmo.
continue: pulando uma iteração do while
A utilização do continue
é semelhante ao break
, porém o loop
não é encerrado, apenas a execução daquela iteração é
encerrada.
Caso queiramos não executar o print
caso o contador seja 2, poderíamos realizar da seguinte forma:
contador = 0
while contador <= 5:
contador += 1
if contador == 2:
continue
print(contador)
Nesse caso, quando o contador for igual a dois a iteração é finalizada e a execução retorna para o início do bloco, sem exibir o contador.
Loop infinito
Às vezes temos como objetivo executar um bloco de código uma quantidade indefinida de vezes, ou seja, realizar uma repetição que teoricamente nunca será finalizada.
Observe o exemplo abaixo que irá exibir a hora atual a cada 5 segundos.
import datetime
import time
while True:
print(datetime.datetime.now())
time.sleep(5)
Para finalizar a execução do programa basta apertar CTRL e C simultaneamente no teclado.
Qual a utilidade disso? Bem, desse exemplo acima nenhum, mas essa forma de utilização do while
é extremamente comum.
Às vezes um código necessita ser executado como um serviço, ou seja, será inicializado com a máquina e irá executar um bloco de código específico a cada tempo pré-determinado até o desligamento da máquina.
Loop while em uma linha
Um while
pode ser definido em apenas uma linha de código, isso pode ser bastante útil em alguns casos, pois permite
simplificar o código.
cont = 0
while cont <= 5: cont += 1
Para executar duas instruções, o ponto e vírgula(;
) pode ser utilizado separando as instruções, no exemplo
utilizaremos para exibir a variável cont
na tela.
cont = 0
while cont <= 5: cont += 1; print(cont)
Mesmo que seja possível utilizar para lógicas mais complexas, isso não é recomendado e nem incentivado, o ideal é utilizar a definição em uma linha apenas para lógicas simples, como chamar apenas uma função ou exibir uma informação no terminal.
Utilizando o for em Python
O for
é a forma de iteração definida padrão do Python
.
Assim como em outras linguagens, existem alguns padrões de formas de utilizar a iteração definida adotada por várias
linguagens, porém Python
abstrai todas e simplifica em uma única sintaxe que será constatado no decorrer deste tópico.
Algumas coisas demonstradas na seção sobre while
também se aplicam ao for
, como a instrução break
e continue
,
então estes tópicos não serão repetidos nessa seção sobre o for
.
Percorrendo uma sequência de números
Percorrer uma sequência de números é extremamente útil, e talvez seja a forma de utilização do for mais comumente vista
em códigos em Python
.
Para percorrer e exibir os números de um a cinco, poderíamos efetuar da seguinte forma:
for i in range(5):
print(i)
Foi utilizado a função range
com apenas um parâmetro sendo fornecido, nesse caso a contagem será iniciada em 0 e irá
até 5, adicionando 1 a i
em cada execução.
Caso o objetivo seja iniciar a contagem em 1, basta fazer conforme o exemplo abaixo:
for i in range(1, 5):
print(i)
Um terceiro parâmetro também pode ser fornecido, esse parâmetro é denominado passo.
O passo padrão é 1, mas caso queira que a contagem seja feita adicionando 2 a i
em cada execução, o código ficará da
seguinte forma:
for i in range(1, 5, 2):
print(i)
Percorrendo uma lista
O for
também pode ser utilizado para percorrer uma lista em Python.
numeros = [897, 412, 314, 19, 7]
for numero in numeros:
print(numero)
Percorrendo um dicionário
Por mais que seja menos comum, também é possível percorrer um dicionário com for
.
Uma forma simples de executar essa tarefa está no exemplo abaixo:
dicionario = {'site': 'covil do dev',
'autor': 'Lindomar Rodrigues'}
for chave in dicionario:
print(f"{chave} --> {dicionario[chave]}")
Além dessa existem diversas outras formas de iterar sobre um dicionário com o for
, para não duplicar conteúdo
recomendo seriamente este artigo completo sobre dicionários em Python, que abordou várias formas de
iteração sobre dicionários.