Sintaxe de loops no Python

Neste post iremos demonstrar a utilização básica dos loops While e For. Ambas são sintaxes bem simples no Python.

*update 19/12/2017*: Incluindo utilização das funções range e zip;
*update 19/12/2017*:
Explicação da iteração feita em dicionários;

 

 

While Loop:

O loop acima repete 100 vezes a operação de soma e incrementa a variável i.

 

For Loop:

O fonte acima demonstra um loop utilizando For, mostrando na tela cada letra da string “Raccoon.Ninja”.

Abaixo utilizamos o loop for para mostrar cada item de um vetor:

 

Algumas vezes, precisamos fazer uma iteração em um vetor e utilizar o índice para acessar os valores. Existem algumas formas de se fazer isso. Veja abaixo duas formas de se fazer isso:

No código acima, pegamos o tamanho do vetor (utilizando a função len), depois criamos um vetor numérico sequencial (utilizando a função range).

Depois disso, basta acessar as posições dos vetores.

O próximo exemplo demonstra uma maneira mais simples de fazer isso:

No fonte acima, utilizamos a função enumerate, que vai retornar um vetor de iterators.

 

Pode ser que a sua necessidade para criar um loop venha da quantidade de vezes que você precisa repetir uma determinada ação. Neste caso, podemos utilizar a função range.

O fonte acima fará o python mostrar no console números de 0 a 9, totalizando 10 números. Se você precisar fazer repetir n vezes uma ação, utilize o range(n) para gerar o número correto de loops.

 

Loop de duas (ou mais) listas ao mesmo tempo:

Outra coisa que o Python resolve muito bem é realizar a iteração entre diversas listas ao mesmo tempo.

Considere as seguintes listas:

 

Para realizar uma iteração com as duas listas, basta utilizar a função zip:

Pronto. Feita a interação. Porém, existe um cuidado para se tomar, quando utilizamos esta função.

O Python considera a menor lista informada para fazer a iteração conjunta, ou seja, se a lista_1 possuir 3 itens, mas a lista_2 possuir apenas 1 item, o loop terá apenas 1 repetição.

 

Realizando iterações em um dicionário:

Dicionários no Python são extremamente úteis, mas eles exigem um cuidado extra.

Considere o dict abaixo:

 

Veja o que acontece se fizermos uma iteração simples?

Então… esta iteração não funcionou bem, pois o Python imprimiu as chaves e não os valores. Como resolver isso?

Existem algumas formas…

Primeiro, se você realmente precisar de fazer uma iteração apenas pelas chaves do dicionário, sugiro fazer conforme o exemplo abaixo:

Esta sintaxe terá o mesmo resultado da tentativa anterior, mas está mais legível.

 

Para fazer uma iteração apenas pelos valores do dicionário:

Com esta sintaxe, você fará a iteração pelos valores do dict, mas não terá acesso às chaves.

 

Abaixo está a sintaxe para realizar a iteração pela chave e pelo valor:

Na sintaxe acima, você tem acesso a chave E ao valor de cada item do dicionário. Só para ficar mais simpático o retorno, utilizei a formatação de strings.

 

Atenção! Em algumas sintaxes fiz uma distinção entre Python 2 e Python 3, pois as funções iterkeys() e iteritems() foram removidas no Python 3 e as funções keys() e items() não existem no Python 2. Cuidado para não trocar as bolas e acabar fazendo seu código não compilar.

 

Antes de encerrar o assunto dicionario (pelo menos para este update), que tal fazer uma iteração onde você tem o indice do item, a chave E o valor?

No fonte acima, utilizamos a função Zip, passando 3 argumentos:

  • range(len(lista)): Criamos um range (explicado acima neste post), passando como argumento dele o tamanho da nossa lista;
  • lista.keys(): Retorna uma lista com as chaves do dicionário;
  • lista.values(): Retorna uma lista com os valores do dicionário;

Para cada iteração deste loop, será impresso o índice, a chave  e o valor. Ficará algo do tipo:

 

Como sair do loop:

Para sair do Loop, utilize o comando break. Ele vai sair tanto do loop while quanto do for.

 

“Pular” uma repetição do loop:

Para pular uma das repetições do loop, utilize o comando continue.

The following two tabs change content below.
Breno RdV
Ex-Psicólogo, com quase uma década de experiência em Recursos Humanos e Gestão de Pessoas, atual desenvolvedor e Analista de Sistemas, trabalhando com PowerBuilder, C#, PowerShell e expandindo horizontes para Python, Xamarin, PHP, Angular e (por que não?) Unity.

Comments

comments

Posted in Dev, Python and tagged , , .