NOME DURAÇÃO
Curso de Python
Primeira Aula de Python
Como Instalar o Python no Windows
Características do Python
Recursos do Python
IDLE - Modo Interativo do Python
Instalando o PyCharm no Windows
Primeiro programa em Python
Comentários em Python
Indentação do código Python
Variáveis em Python
Características das Variáveis em Python
Nomenclatura das Variáveis em Python
Tipos de dados em Python
Variáveis do tipo Ponto Flutuante do Python
Entrada de Dados em Python
Operadores Aritméticos do Python
Módulo da Divisão em Python
Potenciação e Radiciação em Python
Operadores Relacionais do Python
Tomada de Decisão em Python
Estrutura if e else em Python
Depurando código Python
Operadores Relacionais Compostos do Python
Operadores Relacionais na Prática em Python
Operadores Lógicos em Python
Blocos de Instrução em Python
Blocos de Instrução em Python (Parte II)
Blocos de Instrução Python na Prática
Escopo de Nomes em Python
Estrutura de Atribuição Simples do Python
Atribuição Múltipla em Python
Operadores de Atribuição Compostos do Python
Atribuição Condicional em Python
Iteração em Python
Laços de Repetição do Python
Estrutura de repetição while em Python
A instrução for em Python
A função range() do Python
O for loop e a função range() do Python
Instrução break do Python
Instrução continue em Python
Estruturas de Dados Lista em Python
Lista, Pilha, Array, Set em Python
A classe list do Python
Classe list - Conceitos Avançados do Python
Funções da Classe list do Python
Iteração de Listas em Python
Fatiando Listas em Python
Incluindo, Alterando e Excluindo Elementos no Python
Ordenamento de Listas em Python
Quantidade de Itens em Python
Tuplas em Python
Operadores in e not in do Python
Operadores and, or e in do Python
Exemplo com Operador in em Python
Introdução às Strings em Python
Fatiando Strings com Python
Funções das Strings no Python
Comparação de Strings em Python
Iterando Strings em Python
Introdução aos Dicionários do Python
Dicionários na Prática com Python
Funções dos Dicionários no Python
Introdução às Funções em Python
Parâmetros de Função em Python
Parâmetros default em Python
Argumento de Função Nomeado vs Posicional em Python
Retornando Valores pelas Funções em Python

Vamos estudar nessa aula a Iteração, Estrutura de Repetição, looping, Laço de Repetição, Laços Condicionais ou como você preferir chama-los!

INTRODUÇÃO À ITERAÇÃO

Iterar é a ação de repetir algo. Na programação, iteração significa a repetição de um conjunto de instruções por uma quantidade finita de vezes ou então, enquanto uma condição seja aceita.

Há várias formas para falarmos sobre a iteração, por exemplo: Iteração, Estrutura de Repetição, looping, Laço de Repetição, Laços Condicionais, repetição e etc. Todos as nomenclaturas acima são utilizadas para nos referir às estruturas das linguagens que tem o propósito de repetir um mesmo bloco de código, por uma quantidade finita de vezes, ou enquanto uma condição for verdadeira.

Toda linguagem de programação possui no mínimo uma forma de iteração.

É comum que os iniciantes não enxerguem onde esse tipo de estrutura é utilizada e isso é normal! Então, vamos utilizar um exemplo para tentar demonstrar o seu uso e importância.

CASO DE USO

Vamos supor que tenhamos uma lista de nomes, como por exemplo, a lista a seguir:

fulano
ciclano
beltrano

Agora, vamos supor que queiramos utilizar esses nomes, porém, precisamos que os mesmos estejam em letras maiúsculas. Assim, vamos criar um código que deve ser executado transformando o nome de caracteres minusculos para maiúsculos. Observe que esse código é o mesmo, indiferente do nome, ou então, indiferente seja o item contido na lista acima.

DESSA FORMA TEMOS que precisamos que um mesmo bloco de código seja executado para cada elemento contido na lista de nomes acima! Ou seja, vamos criar um único código e executa-lo a quantidade de vezes que precisarmos, ou então, a quantidade de itens existentes na lista.

EXEMPLO UTILIZANDO PYTHON

No código a seguir, temos um exemplo utilizando a estrutura de repetição while, que numa tradução livre, significa, enquanto.

#coding: utf-8

num = 0
while(num < 10):
    print(num)
    num += 1

O código acima, inicialmente declara uma variável de nome num e inicializa-a com o valor literal 0 . Em seguida, com a instrução while é definido uma Estrutura de Repetição e essa será repetida enquanto a condição definida entre parêntesis, no cabeçalho da estrutura while for verdadeiro.

É importante observar, que a condição definida no cabeçalho da estrutura while só deixará de ser verdadeira, porque o valor da variável num é incrementado toda vez que o bloco de instrução é executado, do contrário, teríamos um laço de repetição infinito e que faria o nosso programar travar, congelar - entrar em looping!

A REPETIÇÃO DE FORMA PRIMITIVA

A forma mais primitiva que as linguagens de programação dispunham para a repetição de um mesmo bloco se dava com o uso das instruções goto, que numa tradução livre significa algo como vá para.

Algumas linguagens obrigava-nos a definir o número da linha para qual desejamos saltar, outras, permitiam a definição de label, isto é, nomes, para então, com a instrução goto, pularmos para a linha de um respectivo label.

Desta forma, se desejassemos repetir um mesmo bloco, tínhamos que pular para o início do label e assim, repetir as instrução enquanto fosse necessário, por exemplo.

label REPETIÇÃO:
    linha1;
    linha2;
    linha3;

    SE (TRUE)
        goto REPETICAO;
    SENÃO
        instrucao

No código acima, um pouco escrito em Português e outra parte em Inglês, temos como as 3 últimas linhas de código, uma estrutura de seleção, onde uma condição é verificada e, caso a expressão seja verdadeira, o cursos de execução do programa saltará para linha onde o label está declarado. Do contrário, o bloco SENÃO é executado e a execução seguirá normalmente.

A RECURSIVIDADE COMO LAÇO DE REPETIÇÃO

Recursividade significa a invocação de uma função por ela mesma, ou seja, é toda função que invoca a si mesma. Essa é uma prática perigosa de trabalho e que pode facilmente travar nossos programas, ou então, estourar a pilha de execução, isto é, podemos obter o famoso erro stack overflow error que, nada mais é do que o limite máximo de vezes que uma função pode chamar a si mesma.

A seguir, temos um exemplo em Português, onde trabalhamos com o conceito de recursividade.

func minhaFunção(val):

    linha 1
    linha 2
    linha 3

    val = val + 1

    SE( val < 10 ):
        minhaFunção( val )
    SENÃO:
        exit(0)

minhaFunção(0)

No código acima, definimos uma função de nome minhaFunção() e estamos invocando-a na última linha do código, ou seja, estamos invocando a função após a sua definição.

A partir do momento que invocamos a função minhaFunção(), estamos também, enviando como argumento um valor literal inteiro igual a 0 . Esse valor é recebido como parâmetro pelo argumento val. Agora, estando dentro da função, algumas linhas são executadas, e então, a variável val recebe o valor dela mesma, acrescido de 1 unidade.

Feito isso, uma condição é verificada e, caso o valor da variável val seja menor do que o valor inteiro literal 10, o bloco de instrução verdadeiro será executado, e este, contém uma única instrução que invoca a função novamente passando como parâmetro o valor contido na variável val.

Do contrário, isto é, caso o valor da variável val seja igual ou maior do que 10, então, é executado a instrução exit() e o bloco de instrução é finalizado.

Neste exemplo, podemos ver como um mesmo bloco é executado por diversas vezes e somente quando a condição definida dentro do próprio bloco deixar de ser verdadeira, é que a execução será interrompida. Do contrário, o ciclo continuara sua execução, de maneira indefinida.

BLOCO DE INSTRUÇÃO

O Bloco de Instrução é o conjunto de instrução que SEMPRE está na sequência das estruturas e sempre estarão na indentação, um nível hierarquico a frente da definição da estrutura.

CICLO OU LAÇO

O ciclo é o nome chamado a uma única repetição do bloco de instrução.

Do dicionários Aurélio, temos que ciclo significa: "Série de fenômenos que se sucedem numa ordem determinada"

Então, temos que o bloco de instrução executado por definição, sempre será o mesmo. Assim, devemos pensar no conceito de ciclo para as linguagens de programação, como a execução de um mesmo bloco de código. Talvez, o bloco tenha condições que determinem, conforme a expressão definida, blocos de instruções diferentes, porém, no geral, esse bloco sempre estará contido dentro do bloco de instrução da estrutura de repetição.

ESTRUTURAS DE REPETIÇÃO

As linguagens de programação atuais fornecem meios para a repetição de um bloco de instrução de forma mais simples e menos verbosas do que suas antecessoras. Essa estruturas são, tecnicamente chamadas de Iteradores, isto é, repetidores.

Normalmente, as linguagens disponibilizam um iterador que repetira uma quantia finita de vezes, e outro que repetirá, enquanto uma condição seja verdadeira, ou seja, um repetidor condicional.

ITERADORES EM PYTHON

O Python disponibiliza 2 iteradores, o primeiro e mais simples é o iterador condicional, que repetira um determinado bloco de código enquanto a condição definida no cabeçalho da estrutura for verdadeiro, de nome while.

O segundo iterador, é o iterador finito, isto é, que repetira por uma quantidade de vezes conhecido previamente que é chamado de for..in.

EXEMPLO FEITO EM AULA

#coding: utf-8

#=====================================
#========== www.eXcript.com ==========
#=====================================

x = 0
while(x<=10):
    print(x)
    x += 1


Tags curso, python, iteração, estrutura de repetição, looping, laço de repetição, laços condicionais, blog

Comentários

comments powered by Disqus