Baixe o app para aproveitar ainda mais
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 ------------------------------------------------------- // ------------------------------------------------------------
Compartilhar