Você está na página 1de 4

INF1025: Introdução à Programação

Monitor: André Vicente Pessanha


Resumo Repetição:

***************************************************************************************************

OBS:​ Essa matéria cai "Somente" na P1, P2 e P3! :D

***************************************************************************************************

Tipos de repetição:

- Repetição Determinada: For (Básico)

OBS: ​Esse tipo de repetição será ensinado nas primeiras aulas junto com a interface
gráfica. (Módulo Turtle) Os outros tipos só serão ensinados na P2!

Recomendado pra repetições Determinadas/Finitas! Quando sabemos >> Exatamente <<


quantas vezes precisamos repetir algum trecho de código.

EX:​ Um programa que exibe na tela a sequência de valores de zero até 8. (Inclusive)

for i in range(9):
print(i)

OBS: ​Diferente das outras linguagens, em Python >> N


​ ÃO​ << podemos colocar parênteses
no for!

A função range recebe como parâmetro um intervalo (Ínicio e fim) e cria uma sequência de
valores. Como só colocamos o número 9, o intervalo inicial é sempre >> ​Zero ​<< e vai até
8! (Pois não inclui o extremo do intervalo final!)

O comando for pega cada um dos elementos da sequência criada pela range e a cada
iteração, atribui na variável >> ​i ​<< um dos valores da sequência! Em outras palavras, é
uma repetição que começa com​ i = 0​ e repete enquanto i​ < 9 ​E como o enunciado pede pra
incluir o número 8, por isso não ia funcionar se colocasse range(8)

EX:​ Faça um programa que exiba na tela somente os números pares do intervalo [4 ; 12]

for i in range(4,13):
if( i % 2 == 0):
print( i )
OBS:​ Lembrando que para verificar se um número é par, basta ele ser divisível por 2. Ou
seja, o resto de sua divisão por 2 ser zero.

Notou que a cada iteração, o valor de i é automaticamente incrementado em 1? :)

Pois é, esse é o incremento padrão da função range, mas podemos alterar especificando a
quantidade do passo no terceiro parâmetro. (Tb chamado de ​Passo​ ou ​Step​)

for i in range (4, 9, 2):


print(i)

A repetição começa com ​i = 4​ , depois com i​ = 6 ​e por último com​ i = 8​ (É somado 2 a cada
iteração )

------------------------------------------------------- // ------------------------------------------------------------

- Repetição indeterminada: While

Recomendado para repetições Indeterminadas/Infinitas! Quando >> Não << sabemos


quantas vezes precisamos repetir algum trecho de código. Ou seja, sempre que o
enunciado >> Não << especificar a quantidade de repetições!

OBS:​ Apesar de ser obrigatório >> Não << colocar os parênteses na repetição ‘for’. No
while isso é opcional! Eu sempre coloco, pois em C (Prog 2) será obrigatório colocar
parênteses em ambos.

EX:​ Faça uma programa que leia e exiba cada um dos nomes digitados. A leitura encerra
quando digitar “fim”.

nome = input("Digite seu nome:")


while (nome != "fim"):
print(nome)
nome = input("Digita seu nome:")

Percebe que enquanto o usuário >> ​NÃO ​<< digitar o nome “fim”, a repetição while vai ficar
repetindo para sempre? :D

Esse trecho aqui: while (nome != "fim"):

Pode ser lido da seguinte forma:


Enquanto o nome é diferente de “fim”: Executa o que estiver dentro do bloco do while. (Não
se esqueça que é a identação que indica o que está dentro e fora do bloco!)

OBS:​ É importante entender que >> antes << do final do bloco do while, precisamos
perguntar o nome do próximo usuário, pois dessa forma, assim que o bloco do while
terminar, ele vai voltar pro começo e checar a condição se o nome digitado é diferente de
“fim” novamente e só vai executar o bloco do while de novo, caso a condição continue
sendo verdadeira!

------------------------------------------------------- // ------------------------------------------------------------

- Repetição Determinada: For (Avançada)

OBS:​ Esse tipo de repetição será usado para percorrer listas, dicionários e arquivos.
(Matérias da P2 e P3)

Usando repetição for em Listas:

Existem três formas de percorrer listas com a repetição for:

​ lementos​ da lista.
1ª opção:​ for que armazena e

vals = [10,20,30,40]

for x in vals:
print(“Elemento:”, ​x​)

​ lementos​ da lista. (Essa é a forma mais


OBS:​ A cada iteração, x armazena um dos e
usada.)

2ª opção: ​for que armazena os​ índices​ da lista.

vals = [10,20,30,40]

for i in range​(len(vals)):
print("Índice:",​ i​)
print("Elemento", ​lista[ i ]​ )

OBS:​ Lembrando que quando usamos a função >> r​ ange​ << obrigatoriamente a variável >>
i ​<< assume os valores dos >>​ í​ndices << da lista! E sim! É justamente por isso que
recomendo chamar a variável de i​ ​quando usar a função range! :)
Na verdade esse é a versão básica do for que aprendemos na P1, só que adaptada pra
matéria da P2.
3ª opção: ​for que armazena os í​ ndices ​E​ ​os ​elementos​ da lista.

vals = [10,20,30,40]

for i, x in enumerate​(vals):
print("Indice:",​ i​)
print("Elemento", ​x​ )

------------------------------------------------------- // ------------------------------------------------------------

Usando a repetição for em dicionário:

dados = { "Coelho": [18.5,4],"Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] , "Pombo":[10,5] }

for k in dados:
print(k)

OBS:​ A variável >>​ k​ << sempre armazena as chaves (índices) do dicionário! Da mesma
​ ey​ << ou >>
forma como a variável >>​ i​ << em lista! Pra não confundir, recomendo usar >> k
k​ << como nome de variável! Justamente pra lembrar que se trata das chaves do dicionário!
:)

------------------------------------------------------- // ------------------------------------------------------------

Usando a repetição for em Arquivo:

A repetição for é >> ​insuperável <


​ < na leitura de arquivos, pois a cada repetição, a variável
linha do exemplo abaixo, armazena a ​ utomaticamente​ a string de cada linha do arquivo.

ent = open(“dados.txt”, “r”)


for linha in ent:
print(linha)

ent.close()

OBS:​ As linhas terminam com o caracter ‘​ \n’​ (Caracter especial que pula linha em Strings)
Notou que nesse for foi pulado duas linhas? Isso acontece porque existe um ‘​ \n’​ que fica no
final de cada linha do arquivo e outro ​“\n”​ que vem de brinde na função print! :D

------------------------------------------------------- // ------------------------------------------------------------

Você também pode gostar