Python é uma das linguagens mais amplamente utilizadas hoje. Como quase todas as outras linguagens de programação, Python possui a construção de loop. Loops em Python, como o loop for e o loop while, permitem que os desenvolvedores iterem sobre coleções ou com base em várias condições.
Neste tutorial, você aprenderá como criar e usar cada tipo de loop em Python e também como controlar os loops usando as instruções do Python break
, pass
e continue
.
Vamos começar!
Pré-requisitos
Este post será um tutorial passo a passo. Se você deseja seguir junto, certifique-se de ter o Python v3.6 ou posterior instalado. Este tutorial usará o Python v3.9.2 em um computador com Windows 10.
Compreensão de Construções Iteráveis em Python
Antes de começar a aprender sobre loops, é necessário entender o conceito de iteráveis em Python. Loops processam coleções de elementos como listas, tuplas e dicionários. Cada uma dessas construções contém vários elementos que podem ser “iterados”. Portanto, cada construção é um iterável com elementos que um loop pode processar individualmente.
Quando ouvir alguém falar sobre algo sendo iterável, saiba que se trata de um elemento pelo qual você pode percorrer cada objeto dentro dessa coleção com um loop.
Python For Loops
Vamos começar este tutorial aprendendo sobre os loops for. Os loops for repetem a execução de declarações ou blocos de declarações controlados por uma expressão iterável. Em outras palavras, eles executam código para cada item dentro de uma coleção de elementos.
Loops For e Strings
Por exemplo, talvez você tenha um item iterável como uma string. Em Python, a string é uma sequência de caracteres. Cada string consiste em uma combinação de caracteres. Talvez você tenha uma string ADAM
. Essa string é composta por quatro caracteres iteráveis, A
, D
, A
e M
.
Como uma única string, o Python enxerga apenas um elemento; ADAM
, como mostrado abaixo.

Mas, como as strings em Python são iteráveis, o Python pode “quebrar” essa string em um array de caracteres e depois processar cada caractere individualmente. Para fazer isso, você criaria um loop for como mostrado abaixo.
O loop for tem um alvo ou iterador (letra
neste caso) para representar cada iteração. Em seguida, você informaria ao Python qual elemento iterável você gostaria de processar (ATA
) usando a palavra-chave in
. Cada caractere no array de caracteres está in na string.
Então, dentro do loop for, você criaria qualquer código que gostaria de executar para cada iteração. Neste exemplo, o Python está simplesmente imprimindo cada caractere no array de caracteres (string).
Você pode ver abaixo que o Python imprime cada caractere na string um por vez.

Os loops for podem iterar sobre qualquer elemento iterável, como listas e faixas também. Substitua
ATA
no exemplo desta seção porrange(5)
e você verá o mesmo resultado.
Loops While em Python
Enquanto os loops for executam código para cada item em uma coleção de elementos, o loop while executa código com base em uma condição específica. Mais especificamente, o Python continua a executar um loop while enquanto uma condição for falsa.
Por exemplo, um requisito comum em Python é criar um contador e executar código um número definido de vezes. Para criar essa situação, você precisaria definir uma condição que retornaria True
quando a contagem atual excedesse a contagem máxima.
Vamos dizer que você comece com uma variável chamada count
armazenando um inteiro 0. Você gostaria de incrementar esse inteiro em 1, mas não exceder 5. Você poderia criar algo como isto:
O exemplo acima poderia funcionar, mas não é eficiente de forma alguma. Você não está usando o princípio DRY. Você está se repetindo. Em vez disso, reduza o tamanho do código usando um loop while e diga ao Python para adicionar um a count
enquanto count
for menor que seis.
Os exemplos abaixo usam um loop while para definir uma condição (count < 6
) e executar uma expressão (a instrução print
e incrementar count
em 1 enquanto a condição for True
.

Controle de Fluxo em Laços
Nos dois exemplos anteriores, tanto o laço for quanto o while em Python começaram e terminaram por conta própria. O laço for terminou porque atingiu o final da coleção iterável e o laço while terminou porque sua condição foi avaliada como True
.
Embora seja comum para os laços em Python terminarem “normalmente”, você também pode alterar o comportamento do laço para terminar prematuramente ou pular uma ou mais iterações.
A Declaração Break
Quando você precisa terminar um laço prematuramente, pode fazer isso usando a declaração break
. Quando executado dentro de um laço, a declaração break
interrompe o laço na iteração atual.
Normalmente, você usará a declaração break
quando uma condição específica for atendida dentro de um laço. Por exemplo, no exemplo anterior de laço for, você aprendeu que um laço for iterará sobre uma matriz de caracteres em uma string. Talvez você queira processar apenas todos os caracteres até o primeiro D
.
Para interromper um laço for (ou mesmo um laço while), defina uma determinada condição que deseja corresponder e inclua uma declaração break
, como mostrado abaixo.
No exemplo abaixo, o Python termina o laço for no momento em que a variável do iterador letter
é igual a D
.

A Declaração Continue
Talvez você precise criar um laço com base em uma condição específica, mas não queira necessariamente processar todos os elementos iteráveis. Nesse caso, você pode pular iterações com a declaração continue
.
Ao contrário da instrução break
que termina todo o loop, a instrução continue
pula a iteração atual. Usando o exemplo acima, talvez você queira iterar sobre cada caractere na string ADAM
mas pular o caractere D
. Você poderia pular o caractere D
usando uma condição (if letra == "D"
) e a instrução continue
, como mostrado abaixo.
Abaixo você pode ver que o Python não retornou o caractere D
porque a instrução continue
pulou a instrução print
quando encontrou o caractere D
.

A Instrução Pass
Vamos agora finalizar a seção de controle de fluxo com a instrução pass
. A instrução pass
é um pouco única porque na verdade é apenas um espaço reservado. A instrução pass
é uma maneira de definir um loop em um script Python que na verdade não faz nada.
Vamos dizer que você tenha um loop for que prefira deixar em seu script Python por qualquer motivo. Mas, na verdade, você não tem uma expressão para executar dentro dele, como abaixo.
Quando você define um loop for em Python com uma expressão dentro, o Python retornará um IdentationError, como mostrado abaixo.

Mas, adicione a instrução pass
como uma expressão dentro do loop for
e você verá que o Python executa o loop for essencialmente não fazendo nada.

Conclusão
Neste tutorial, você aprendeu como começar com loops em Python. Aprender como os loops em Python funcionam e como controlá-los oferece muito mais oportunidades para criar e construir programas Python sólidos.
Com seu conhecimento recém-adquirido, onde você vai inserir um loop no seu código?