Introdução aos loops aninhados do Python

Bem-vindo a outro capítulo do curso de aprendizado em Python - Nested Loops. Uma ótima maneira de executar um loop, loops aninhados provaram seu valor em todas as linguagens de programação. Hoje, focaremos especificamente o Python - os tipos, a sintaxe e os exemplos. Então vamos começar.

Loops aninhados

Seria bom abordar brevemente os Nested Loops em geral, antes de prosseguir com o Python especificamente. Se um loop existir dentro do corpo de outro loop, ele será denominado Loop Aninhado. Isso significa que queremos executar o código do loop interno várias vezes. O loop externo controla quantas iterações o loop interno passará. Um exemplo básico de um loop for aninhado é:

for (i=0; i<10; i++)
(
for (j=0; j<10; j++)
(
//This code will execute 100 times.
)
//This code will execute 10 times.
)

Um ponto a ser observado aqui é que qualquer tipo de loop pode ser aninhado dentro de outro loop. Por exemplo, um loop while pode ser aninhado dentro de um loop for ou vice-versa.

Loops aninhados em Python

1) Aninhado para sintaxe de loop

A sintaxe básica de um loop for aninhado no Python é:

for (iterating_variable_1) in (sequence_1): #Outer Loop
for (iterating_variable_2) in (iterating_variable_1/sequence_2): #Inner Loop
(code to execute)

Exemplo

for i in range(11): #line 1
for j in range(i): #line 2
print('*', end='') #line 3
print('') #line 4

Resultado:

Fluxo de Execução

Vamos tentar entender o fluxo de execução do programa acima. No programa, usamos duas variáveis ​​de iteração iej para imprimir um padrão de estrelas.

O compilador começa com a linha 1. Ele encontra uma função for loop e range. A função range no Python gera uma matriz iterável de números inteiros de 0 ao número especificado no argumento. O número do argumento é excluído da matriz. No nosso caso, ele irá gerar uma matriz (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10). Agora, o compilador sabe que deve executar o próximo conjunto de instruções 10 vezes.

Quando se move para a linha 2, encontra outro para a função loop e range. Observe que o argumento para essa função de intervalo é um valor calculado da nossa variável de iteração i. Portanto, ele gera dinamicamente um array, dependendo do valor de i. Quando i = 0, a matriz está vazia. Quando i = 1, a matriz é (0). Quando i = 2, a matriz é (0, 1) e assim por diante.

Portanto, o número de vezes que a linha 3 é executada diretamente depende do valor de i. Observe a parte end = '' inline 3. Isso evita que o Python imprima um avanço de linha após cada estrela. Queremos apenas um avanço de linha no final de cada iteração do loop externo. Assim, imprimimos explicitamente um avanço de linha na linha 4 do nosso código.

Portanto, agora, vamos examinar atentamente todas as iterações do nosso loop aninhado.

Iteração de loop externo 1

I = 0, j = (), output is a blank line.

Iteração de loop externo 2

I = 1, j = (0), output = *

Iteração de loop externo 3

I = 2, j = (0, 1), output = **

Iteração do loop externo 4

I = 3, j = (0, 1, 2), output = ***

.
.
.

Iteração do loop externo 10

I = 9, j = (0, 1, 2, 3, 4, 5, 6, 7, 8), output = *********

Iteração do loop externo 11

I = 10, j = (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), output = **********

2) Aninhado enquanto loop

Sintaxe

A sintaxe para aninhar o loop while no Python é:

while (expression_1): #Outer loop
(code to execute) #Optional
while (expression_2): #Inner loop
(code to execute)

Diferentemente do loop for, o loop while não possui uma sequência iterável pré-compilada. O loop while continua executando o código até que a expressão seja avaliada como verdadeira. Portanto, um desenvolvedor deve sempre se lembrar de atualizar a variável / expressão iterativa; caso contrário, o loop entrará no modo de execução infinita.

Exemplo

i=1 #line 1
while(i<=5): #line 2
j=5 #line 3
while(j>=i): #line 4
print(j, end=' ') #line 5
j-=1 #line 6
i+=1 #line 7
print() #line 8

Resultado:

Fluxo de Execução

A linha 1 do código define a variável iterativa do loop externo para o valor inicial. A próxima linha é o início do loop while externo. Tem uma expressão i <= 5. Essa expressão é avaliada quanto ao valor verdadeiro após cada iteração. A execução entra no loop apenas se a condição for verdadeira. Assim que a condição se tornar falsa, o loop será encerrado.

Como o valor inicial de I é 1, a condição na linha 2 é verdadeira. Portanto, o compilador se move para a linha 3 e define a variável iterativa j do nosso loop interno para 5. A linha 4 novamente tem um loop while com uma expressão que é avaliada como verdadeira. Portanto, o compilador executa as linhas 5 e 6. Em seguida, retorna à linha 4 e avalia a condição. Se a condição for verdadeira, ela entrará novamente nas linhas 5 e 6. Se a condição se tornar falsa, o loop será encerrado e as próximas linhas a serem executadas serão as linhas 7 e 8. O mesmo será seguido para o loop externo.

As linhas 6 e 7 são muito importantes, pois atualizam nossa variável de iteração. Sem eles, o fluxo do programa entraria no modo de execução infinito, pois as expressões do loop while sempre resultariam em verdade.

Devo quebrar, continuar ou passar

Como em quase todas as outras linguagens de programação, o Python também tem o conceito de interromper e continuar. Essas palavras-chave ajudam a finalizar qualquer loop ou ignorar uma iteração específica do loop. Python também tem outra palavra-chave - pass. Vamos dar uma olhada neles.

1) Pausa

A palavra-chave break indica que o compilador salta de um loop e encerra sua execução.

Exemplo

for i in range(5):
for j in range(5):
if i == j:
break
print(j, end='')
print('')

Resultado:

O programa acima quebra o loop for interno se o valor de I e j forem iguais. Ele não executa outras iterações do loop. Isso pode ser entendido com a instrução continue.

2) Continuar

A palavra-chave continue indica o compilador para ignorar a iteração atual do loop e continuar com a próxima iteração.

Exemplo

for i in range(5):
for j in range(5):
if i == j:
continue
print(j, end='')
print('')

Resultado:

Observe que o mesmo programa, mas com instrução continue em vez de quebra, não finaliza a execução do loop. Apenas ignora a iteração atual.

3) Passe

A palavra-chave pass é interessante em Python. Simplesmente significa não fazer nada. É usado quando o bloco de código é necessário sintaticamente, mas você não deseja que nenhum comando seja executado. Simplesmente atua como um espaço reservado.

Exemplo

for i in range(5):
for j in range(5):
if i == j:
#I am not sure what to do when i equals j, so for now I will pass.
pass
print(j, end='')
print('')

Resultado:

Conclusão

Os loops são estrategicamente muito importantes para aprender a executar uma tarefa com linhas mínimas de código. Esta é apenas uma introdução básica aos loops. Recomenda-se brincar mais, ser criativo e explorar ainda mais o potencial dos loops.

Artigos recomendados

Este é um guia para os loops aninhados do Python. Aqui discutimos os loops aninhados do Python com a sintaxe, os exemplos, o fluxo de saída e de execução. Você também pode consultar o seguinte artigo para saber mais -

  1. Frameworks Python
  2. Como instalar o Python
  3. Guia de loops em Python
  4. O que é a interface Java?
  5. Diferentes tipos de loops com suas vantagens
  6. Loops no VBScript com exemplos