Compreendendo Laços e Controle de Fluxo em Python para Iniciantes

Python é uma das linguagens mais amplamente utilizadas hoje. Como praticamente todas as outras linguagens de programação, o Python possui a estrutura 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 loops usando as instruções break, pass e continue do Python.

Vamos começar!

Pré-requisitos

Este post será um tutorial passo a passo. Se você deseja acompanhar, 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.

Compreendendo Construções Iteráveis em Python

Antes de começar a aprender sobre loops, é necessário entender o conceito de iteráveis em Python. Os loops processam coleções de elementos como listas, tuplas e dicionários. Cada uma dessas construções contém vários elementos que você pode “iterar”. Portanto, cada construção é um iterável com elementos que um loop pode processar individualmente.

Quando você ouvir alguém falar sobre algo sendo iterável, saiba que isso é um elemento que você pode ler 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 bloco 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. Esta string consiste em quatro caracteres iteráveis, A, D, A e M.

Como uma única string, o Python vê 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 então processar cada caractere um de cada vez. Para fazer isso, você criaria um loop for como mostrado abaixo.

O loop for tem um alvo ou iterador (letter neste caso) para representar cada iteração. Em seguida, você diria ao Python qual elemento iterável você gostaria de processar (ATA) usando a palavra-chave in. Cada caractere no array de caracteres está in a 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 de cada vez.

Printing each character in a string with a for loop

Os loops for podem iterar sobre qualquer elemento iterável, como listas e intervalos 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 ultrapassar a contagem máxima.

Vamos dizer que você comece com uma variável chamada count armazenando um inteiro 0. Você gostaria de incrementar este inteiro em 1, mas não ultrapassar 5. Você poderia criar algo assim:

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

O acima pode funcionar, mas não é eficiente. Você não está usando o princípio DRY. Você está se repetindo. Em vez disso, reduza o comprimento do código usando um loop while e dizendo 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 Loops

Nos dois exemplos anteriores, tanto os loops for quanto os while em Python começaram e terminaram por si mesmos. O loop for terminou porque atingiu o final da coleção iterável e o loop while terminou porque sua condição avaliou como True.

Embora seja comum para os loops em Python terminarem “normalmente”, você também pode alterar o comportamento do loop para encerrar prematuramente ou pular uma ou mais iterações.

A Declaração Break

Quando você precisa encerrar um loop prematuramente, pode fazer isso usando a declaração break. Quando executada dentro de um loop, a declaração break interrompe o loop na iteração atual.

Normalmente, você usará a declaração break quando uma condição específica for atendida dentro de um loop. Por exemplo, no exemplo anterior do loop for, você aprendeu que um loop for itera sobre um array de caracteres em uma string. Talvez você queira processar apenas todos os caracteres até o primeiro D.

Para interromper um loop for (ou até mesmo um loop while), defina uma condição específica que você gostaria de corresponder e inclua uma declaração break, como mostrado abaixo.

No exemplo abaixo, o Python encerra o loop 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 loop 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)

Você pode ver abaixo 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, você na verdade 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 os loops em Python. Aprender como os loops em Python funcionam e como controlá-los oferece a você muito mais oportunidades para criar e construir programas Python sólidos.

Com seu conhecimento recém-adquirido, onde você irá inserir um loop em seu código?

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