Compreensão de Loop e Controle de Fluxo em Python para Iniciantes

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.

One element in Python

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).

ATA = "ADAM"
for letter in ATA:
    print(letter)

Você pode ver abaixo que o Python imprime cada caractere na string um por vez.

Printing each character in a string with a for loop

Os loops for podem iterar sobre qualquer elemento iterável, como listas e faixas também. Substitua ATA no exemplo desta seção por range(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:

count = 0
count = count + 1
count = count + 1
count = count + 1
count = count + 1
count = count + 1
print(count)

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.

count = 0
while (count < 6):
   print('The count is:', count)
   count = count + 1
Demonstrating a Python while loop

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.

ATA = "ADAM"
for letter in ATA:
	print(letter)
	if letter == "D":
		break
Demonstrating the break statement in a Python loop

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.

ATA = "ADAM"
for letter in ATA:
	if letter == "D":
		continue
	print(letter)

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.

Using the Python continue statement

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.

for value in "adam":

Quando você define um loop for em Python com uma expressão dentro, o Python retornará um IdentationError, como mostrado abaixo.

Error about no loop expression

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.

Using the pass statement

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?

Source:
https://adamtheautomator.com/python-loop/