Estruturas de Repetição II— For
Replicação sem duplicação
Continuação de:
Comando ‘for’ (“para cada”)
Além de utilizarmos o for (enquanto) para replicarmos um bloco de código, também utilizamos este comando para iterarmos uma sequência — lista, tupla, etc. — de forma muito mais simples do que o comando While.
O modo de utilizar o for é o seguinte:
# '-' simboliza um espaço (tab)
# lemos "para cada elemento na sequência"
for elemento in <sequencia>:
----<código>
A quantidade de iterações (repetições) será igual ao número de elementos da sequência.
Para cada iteração, a variável ‘elemento’ assumirá um valor da sequência. Por exemplo:
- Na primeira iteração, o valor de ‘elemento’ será igual ao primeiro elemento da sequência;
- Na segunda iteração, o valor de ‘elemento’ será igual ao segundo elemento da sequência;
- E assim sucessivamente.
Utilizaremos o exemplo da ‘lista de monitores’ da seção While:
Vejamos como ficaria esse código utilizando o comando for.
Nosso código ficou bem mais simples, não foi?
Só utilizaremos o ‘for’ para iterarmos sequências?
Não! Utilizaremos para diversos outros casos, os quais vamos mostrar a seguir. Começamos esta seção pela parte de iteração de sequências, pois é a característica mais marcante deste comando.
Comando ‘for’ e o comando “range”
O range (intervalo) é comando que utilizamos quando precisamos realizar uma iteração através de números.
A sintaxe do comando range é:
# range -> intervalo# start -> início
# stop -> parada
# step -> passorange(start, stop, step)
Os argumentos deste comando possuem o mesmo sentindo dos argumentos do operador [] que vimos em Estruturas de Dados. E o retorno deste comando é um tipo range, o qual podemos utilizar para criar lista de números.
Vejamos alguns exemplos:
A quantidade de argumentos passados para o range é interpretada da seguinte forma:
- Um argumento é interpretado como o valor do índice final (stop);
- Dois argumentos são interpretados como o primeiro argumento sendo o índice inicial (start) e o segundo sendo o índice final (stop);
- Três (todos) argumentos são interpretados como o primeiro argumento sendo o índice inicial (start), o segundo sendo o índice final (stop) e terceiro sendo o passo (step).
Vejamos alguns exemplos de combinação do comando range com o comando for.
- Imprimindo números de 1 até 10:
- Imprimindo todos os números pares até 1000 (lado a lado):
- Iterando o exemplo ‘lista de monitores’ utilizando o range:
Iterando mais de uma sequência
Podemos iterar mais de uma sequência durante um for, contanto que as sequências possuam o mesmo tamanho. Existem diversas formas de fazermos isso:
- Utilizando o comando range:
- Utilizando o comando zip:
Nota: Utilizando o comando zip, a cada iteração, temos uma tupla composta com um elemento de cada sequência. Mais detalhes na documentação sobre zip.
- Para ainda termos a informação do índice, podemos utilizar o comando enumerate:
“É MUITA COISA PRA GRAVAR! MUITAS FORMAS!”
Não precisamos gravar nada. Só precisamos lembrar onde procurar quando precisarmos usar algum conceito de programação e não lembrarmos uma maneira de fazer isso.
Dificilmente você “precisará” utilizar todas as formas que mostramos aqui. Escolha a forma que mais te agrada!
Interrompendo o loop — comandos ‘break’ e ‘continue’
Haverá momentos em que necessitaremos alterar o fluxo do loop. Funciona da mesma forma que no comando while. Existem duas formas de fazer isso:
- Interrompendo toda a iteração (o loop inteiro) com o comando break (quebra):
- Interrompendo uma iteração do loop com o comando continue:
Tem mais alguma coisa sobre o ‘while’’?
Tem! O comando for poder ser usado com o comando else, assim como no while. Entretanto, não abordaremos esse caso especial — só o Python possui esta funcionalidade (usar else com for e while).
Exercícios
Faça os exercícios recomendados para esta seção: