Ciclos em Python: como funcionam os loops For e While e como fazê-los
Neste artigo você vai aprender o essencial sobre os loops For e While em Python, como eles funcionam e para que servem.
Economize R$320 na compra do seu curso. Use o código e comece a aprender!
Aprenda uma das linguagens de programação mais versáteis e acessíveis da área de analytics e manuseie, de forma automatizada, grandes quantidades de dados. Com esta ferramenta poderosa você irá agilizar seu trabalho, integrar seus sistemas e processar dados mais rapidamente e em diferentes formatos.
Geralmente, o código em Python é executado de forma sequencial, ou seja, começa com a primeira linha, passa para a segunda e assim por diante. No entanto, há casos em que um trecho de código precisa ser repetido. O Python tem ferramentas chamadas loops para facilitar essa tarefa. Os loops permitem que você altere o fluxo linear do programa para repetir uma parte do código quantas vezes forem necessárias.
O que são loops em Python?
Primeiro, vamos esclarecer o termo iterar, que significa “executar uma ação várias vezes”, e cada repetição é chamada de iteração. Os loops servem para que os programas implementem iterações, ou seja, executem o mesmo bloco de código duas ou mais vezes enquanto a condição declarada é completada. Quando a condição se torna falsa, o programa sai do loop e continua a ser executado de forma sequencial.
O fluxo de execução é o seguinte:
- Avalia a condição, definindo se ela é verdadeira ou falsa (True ou False).
- Se a condição for verdadeira, executa o corpo e retorna à etapa 1.
- Se a condição for falsa, sai do loop e continua para a próxima instrução.
Python conta com dois tipos fundamentais de loops:
- While, aqueles que têm um número indefinido de iterações,
- For, aqueles que têm um número definido de iterações.
Loop while
Uma forma de iteração em Python é a instrução while, que permite repetir a execução de um bloco de código, sempre que a condição do loop seja verdadeira.
A sintaxe é muito simples:
while <condição>: <bloco de código>
O código no corpo do loop deve alterar uma ou mais variáveis até que a condição resulte falsa e o loop termine. Neste exemplo, a variável de iteração altera o valor do parâmetro cada vez que o ciclo é executado e controla quando finaliza o ciclo.
x = 5 while x > 0: x -= 1 print(x) print('PUM!') 4 3 2 1 0 Pum!
Em Python pode-se indicar uma operação alternativa pela instrução else no final do loop while. O trecho de código dentro de else será executado quando a condição de loop não retornar mais True, ou seja, até que a condição de loop não seja mais completada.
x = 5 while x > 0: x -= 1 print(x) else: print('Fim do loop') 4 3 2 1 0 Fim do loop
Se não há nenhuma variável de iteração que determine quantas vezes é preciso executar um loop e a condição permanecer verdadeira, a mesma parte do código se repetirá para sempre, resultando em um loop infinito. Normalmente, loops infinitos se devem a erros e devem ser evitados para não perder o controle do programa.
x = 5 while x > 0: print('Ao infinito e além!') Ao infinito e além! Ao infinito e além! Ao infinito e além! …
Loop For
A instrução for forma um loop definido que percorre os elementos de uma coleção de dados ou uma sequência ordenada, como listas, dicionários, tuplas, strings, etc. O loop fará tantas iterações quantos elementos existirem na sequência.
O loop for em Python tem a seguinte sintaxe:
for <variable> in <sequência>: <bloco de código>
Por exemplo, para iterar os elementos da lista “idiomas” com um loop for é designado “idioma” a uma variável que representará os elementos da lista em cada repetição.
O loop for em Python tem a seguinte sintaxe:
idiomas = ['Árabe', 'Inglês', 'Francês', 'Espanhol'] índice = 0 for idioma in idiomas: print ('Este idioma está na lista: ' + idiomas[índice]) índice += 1 Este idioma está na lista: Árabe Este idioma está na lista: Inglês Este idioma está na lista: Francês Este idioma está na lista: Espanhol
O loop for com cadeias tipo string funciona da mesma forma, mas com caracteres no lugar dos elementos:
cadeia = 'Python' for caractere em cadeia: print(caractere) P y t h o n
Assim como no loop while, pode ser usada a instrução else para acrescentar uma ação adicional ao finalizar o loop. Veja um exemplo com a função range():
for x in range(5): print(x) else: print('Fim do loop') 0 1 2 3 4 Fim do loop
Loops aninhados
O Python permite aninhar loops colocando um dentro do outro. Isso pode ser útil para resolver problemas mais complexos: por exemplo, se você quiser iterar algum objeto em que cada elemento tenha outra classe iterável, como uma lista de listas.
lista = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Para acessar cada elemento individualmente, você pode aninhar dois loops for. O primeiro será responsável por iterar as listas aninhadas, e o outro, seus elementos.
for a in lista: for b in a: print(b) 1 2 3 4 5 6 7 8 9
Da mesma forma, você pode aninhar um loop while. Por exemplo, pode ajudá-lo se você quiser gerar todas as combinações possíveis de dois números:
a = 0 b = 0 while a < 3: while b < 3: print(a,b) b += 1 a += 1 b = 0 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2
Como os loops são controlados em Python?
Usando certas instruções, você pode interromper o fluxo de execução de um loop, se necessário. A instrução break “quebra” o loop a qualquer momento, mesmo quando a condição segue sendo verdadeira. No exemplo a seguir, o loop for percorre todos os números no intervalo de 0 a 4, mas o programa termina quando o número é definido como 3:
for x in range(5): if x == 3: break print (x) 0 1 2
O mesmo acontece com o loop while: ao receber uma entrada determinada, o programa sai do loop e avança para a próxima linha de código:
while True: resposta = input('> ') if resposta == 'sair': break else: print(resposta) print ('Tchau!') > Oi! Oi! > Como vai? Como vai? > sair Tchau!
A instrução continue termina a iteração atual independentemente do código abaixo dela e retorna ao início do loop.
x = 0 while x < 5: x += 1 if x == 3: continue print(x) 1 2 4 5
No exemplo abaixo, quando o valor atingir ‘y’, o programa voltará para o loop for sem executar a última linha de print e sem sair do loop:
for caráter in 'Python': if caractere == 'y': continue print ('A letra é:', caractere) A letra é: P A letra é: t A letra é: h A letra é: o A letra é: n
Por fim, é preciso mencionar a instrução pass. Quando a execução de um loop atinge a instrução pass, ela simplesmente se move para a próxima instrução sem modificar o fluxo estabelecido. Normalmente, ele é usado para reservar espaço, se no momento de escrever um código houver uma parte que ainda não está concluída:
for x in range(1, 5): if x == 2: pass print (x) 1 2 3 4
Para aprender mais e dominar a linguagem Python em nível profissional, a EBAC oferece o curso online Python para Análise de Dados. Em apenas 2 meses, você vai começar a programar do zero, aprendendo a gerenciar listas e estruturas de dados, bem como a visualizar e a publicar sua análise de dados. Você terá atividades práticas, no seu ritmo, de qualquer lugar, com feedback individualizado de um tutor. Poderá aplicar seu aprendizado em um projeto profissional, que vai enriquecer seu portfólio. Ao final do curso, você vai receber um certificado e acesso vitalício à plataforma.
Fica ligado: a EBAC realiza webinars semanais que são abertos ao público e são gratuitos. Os eventos contemplam diversas áreas, inclusive a de Programação & Data. Aproveite para enriquecer os seus conhecimentos. Confira os eventos que já aconteceram e aproveite para se inscrever nos próximos!
Python para Análise de Dados
Economize R$320 na compra do seu curso. Use o código e comece a aprender!
Aprenda uma das linguagens de programação mais versáteis e acessíveis da área de analytics e manuseie, de forma automatizada, grandes quantidades de dados. Com esta ferramenta poderosa você irá agilizar seu trabalho, integrar seus sistemas e processar dados mais rapidamente e em diferentes formatos.
Receba artigos do blog, acompanhe as últimas notícias da EBAC e fique por dentro das novidades!