Buscar

Prévia do material em texto

COMPUTAÇÃO I
Professor: Aloísio Pina
Comando de repetição for (para)
Estabelece um bloco de comandos que será executado para cada um dos elementos de uma
dada lista.
Formalmente:
"Para cada elemento e da lista L, os comandos são executados."
A cada iteração, a variável e recebe um dos elementos da lista L.
Logo, o número de iterações é igual ao número de elementos de L.
Obs.: Não é necessário que e receba um valor inicial antes do for. Ao final do for, o valor de e
será o último elemento de L.
Exemplo: Imprimir na tela todos os elementos da lista L:
1
3
5
7
9
9
ATENÇÃO: A variável e apenas recebe valores da lista L, portanto alterações no valor de e não
modificam a lista L.
Exemplo:
[1, 3, 5, 7, 9]
Para alterar valores na lista L usando o for, em vez de a cada iteração pegar um dos elementos
de L, a cada iteração pegamos um dos índices de L:
In [ ]: for e in L:
 comandos
In [1]: L = [1, 3, 5, 7, 9]
for e in L:
 print(e)
In [2]: print(e)
In [3]: L = [1, 3, 5, 7, 9]
for e in L:
 e = 1000
 
print(L)
In [ ]: for i in Índices de L:
 comandos que alteram L[i]
Precisamos então criar uma lista com os índices de L, que começam em zero e vão até len(L)-1.
Para isso, existe a função range:
range(inicio, fim, passo)
A função range retorna uma faixa de valores inteiros que começa em "inicio", seguindo com
"inicio+passo", "inicio+2*passo", ... até o fim (mas o fim não entra na sequência).
Exemplo:
1
2
3
4
5
6
7
8
9
1
4
7
Quando o passo não é definido, ele é 1.
Exemplo:
5
6
7
8
9
Quando o início não é definido, ele é zero.
Exemplo:
0
1
2
3
4
Portanto, podemos alterar valores na lista L usando for, deste modo:
Ou, simplificando:
In [4]: for i in range(1, 10, 1):
 print(i)
In [5]: for i in range(1, 10, 3):
 print(i)
In [6]: for i in range(5, 10):
 print(i)
In [7]: for i in range(5):
 print(i)
In [ ]: for i in range(0, len(L), 1):
 comandos que alteram L[i]
Exemplo:
[1000, 1000, 1000, 1000, 1000]
ATENÇÃO: Iniciantes devem evitar usar for quando fizerem alterações na lista que aumentem ou
diminuam seu tamanho, pois duas coisas podem acontecer:
Aumentando o tamanho da lista, é possível que parte da lista não seja analisada.
Diminuindo o tamanho da lista, é possível que se tente acessar uma posição que não existe
mais.
Substituindo while por for
O while pode ser substituído pelo for sempre que o número de iterações for conhecido:
Equivale a:
Ex.: Somatório de todos os elementos de uma lista L:
Com while:
25
Com for:
25
In [ ]: for i in range(len(L)):
 comandos que alteram L[i]
In [8]: L = [1, 3, 5, 7, 9]
for i in range(len(L)):
 L[i] = 1000
 
print(L)
In [ ]: i = inicio
while i <= fim:
 comandos
 i = i + passo
In [ ]: for i in range(inicio, fim+1, passo):
 comandos
In [9]: L = [1, 3, 5, 7, 9]
In [10]: s = 0
i = 0
while i <= len(L)-1:
 s = s + L[i]
 i = i + 1
print(s)
In [11]: s = 0
for i in range(0, len(L), 1):
 s = s + L[i]
print(s)
Lembrando que, como não há alteração no conteúdo da lista, neste exemplo poderíamos fazer
assim:
25
In [12]: s = 0
for e in L:
 s = s + e
print(s)

Mais conteúdos dessa disciplina