Buscar

[INF1025] Resumo Repetição

Prévia do material em texto

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: 
 
1ª opção:​ for que armazena ​elementos​ da lista. 
 
vals = [10,20,30,40] 
 
for x in vals: 
 print(“Elemento:”, ​x​) 
 
OBS:​ A cada iteração, x armazena um dos ​elementos​ da lista. (Essa é a forma mais 
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 >> ​range​ << 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 
forma como a variável >>​ i​ << em lista! Pra não confundir, recomendo usar >> ​key​ << ou >> 
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 ​automaticamente​ 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 
 
------------------------------------------------------- // ------------------------------------------------------------

Continue navegando