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

Nesta aula estudaremos a função "range()" uma ferramenta muito utilizada junto a instrução "for", bem como, em todas as situações em que estamos trabalhando com sequências numéricas.

A função range()

A função range() retorna uma série numérica no intervalo enviado como argumento. A série retornada é um objeto iterável tipo range e os elementos contidos serão gerados sob demanda.

É comum o uso da função range() com a estrutura for loop. Desta formta temos que a cada ciclo o próximo elemento da sequência será utilizado de tal forma que é possível partirmos de um ponto e ir incrementando, decrementando x unidades.

DEFINIÇÃO DA FUNÇÃO range()

A seguir, temos a definição da função range() encontrada na documentação oficial do Python:

#coding: utf-8

range( stop ) #primeira definição ou definição simplificada
range( [start], stop[, step] ) #segunda definição ou definição completa

A função range() exige a definição do último elemento da sequência numérica. Por padrão, o parâmetro start será igual a 0 e o step igual a 1.

PARÂMETROS DA FUNÇÃO range()

A função range() permite-nos especificar o início da sequência, o passo, e o valor final. O único parâmetro obrigatório é o que define quem será o último elemento da sequência.

  • start - início da sequência
  • stop - último elemento da sequência
  • step - intervalo entre os elementos

Na definição da função range() é utilizado a notação de conjuntos numéricos para documentar se o intervalo da sequência é aberto ou fechado. Então, os colchetes junto aos parâmetros indica se o intervalo é aberto ou fechado, isto é, se o número estará contido ou não na sequência numérica.

INTERVALO ABERTO E FECHADO

intervalo aberto ] x [

Quando os colchetes se opõem ao número, temos um intervalo aberto. Assim, todos os números no intervalo estarão contidos na sequência numérica, menos os extremos.

Intervalo: ]a, b[ Conjunto: {x ∈ R | a < x < b} Tradução: números reais maiores do que a e menores do que b (quando o intervalo está aberto, entende-se que todos os números do intervalo estão contidos, menos o(s) extremo(s).

intervalo fechado [ x ]
Quando o colchete estiver de "acordo" (no sentido normal) ao número, tem-se um intervalo fechado. Assim, todos os números contidos neste intervalo estarão contidos inclusive os extremos da sequência. Intervalo: [a, b] Conjunto: {x ∈ R | a ≤x ≤ b} Tradução: números reais maiores ou igual a a e menores ou igual a b (quando o intervalo está fechado, entende-se que todos os números do intervalo estão contidos, inclusive o(s) extremo(s).

VOLTANDO AO PYTHON

Agora que já relembramos alguns conceitos da matemática, vamos rever a notação da função range():

#coding: utf-8

range( stop )
range( [start], stop[, step] )

Com a primeira notação é possível invocar a função definindo somente, o intervalo final, ou seja, definindo somente o parâmetro stop. Assume-se assim, que o início da sequência é igual a 0 e o final, igual ao valor que está sendo enviado como argumento.

Com a segunda notação, ou então, com a notação completa, temos a capacidade de definir (1) o início da sequência (2) o último elemento e (3) o passo, isto é, o intervalo entre cada elemento.

EXEMPLO DE USO DA PRIMEIRA NOTAÇÃO

Vamos desenvolver um simples exemplo demonstrando o uso da primeira notação estudada, assim, vamos invocar a função range() e passar como argumento o últimos elemento da sequência numérica que desejamos.

É importante observar que na versão 3x do Python será retornado, pela função range(), um objeto iterável, e não uma lista contendo os elementos propriamente dito. Por essa razão, iremos forçar a conversão do objeto iterável para o objeto list.

DEFINIÇÃO: range( stop[ ) DEFINIÇÃO MATEMÁTICA: [0,5[

#coding: utf-8

>>> list(range(5))
0, 1, 2, 3, 4

A função retornou uma lista contendo 5 elementos, onde o primeiro é o 0 e o último 4.

O primeiro elemento é igual a 0, até porque, quando não definido, assume-se que start=0. O último elemento é o 4, até porque, o parâmetro stop possui o intervalo aberto, isto é, o número definido não estará contido na sequência numérica.

EXEMPLOS DE USO DA SEGUNDA NOTAÇÃO

Vamos desenvolver um simples exemplo demonstrando o uso da segunda notação estudada.

DEFINIÇÃO: range( [start], stop[, step] ) DEFINIÇÃO MATEMÁTICA: [0,5[

  • start - valor onde o intervalo deve começar
  • stop - valor (menos um) onde o intervalo deve finalizar
  • step - passo (intervalo entre os elementos da sequência)

Vamos gerar uma lista que contenha 4 objetos numéricos e que o primeiro seja igual a 2 e o último igual a 5.

Novamente, iremos converter o objeto iterável retornado pela função range() para o tipo list, para que o mesmo, tenha seus elementos impressos na saída padrão.

#coding: utf-8

>>>list(range(2, 6))
[2, 3, 4, 5]

No código acima, definimos o parâmetro start=2 e stop=6 logo, o primeiro elemento foi o 2, enquanto o último elemento, igual a 5.

PASSO OU INTERVALO ENTRE OS ELEMENTOS

O step é o intervalo entre cada elemento numérico. Se por exemplo, gerarmos uma sequência numérica entre 0 e 10 e definirmos, será assumido por padrão, que o step é igual a 1 e por essa razão, o elemento seguinte estará a 1 unidade do elemento anterior, e a lista será igual a: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].

Agora, se nós gerarmos uma lista entre 0 e 10, porém, definirmos o passo como sendo igual a 2, a seguinte lista será retornada: [0, 2, 4, 6, 8].

Em ambos os casos os estamos trabalhando com uma sequência numérica num mesmo intervalo, porém, no primeiro exemplo o intervalo entre os elementos é igual a 1 unidade, enquanto que no segundo exemplo, o espaço entre os elementos é de 2 unidades.

No código a seguir, vamos gerar uma lista no intervalo 2 à 10 e o step será igual a 2 unidades.

#coding: utf-8

>>> list(range(2, 10, 2))
[2, 4, 6, 8]

>>> list(range(0, 30, 3))
[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]

No código acima, geramos 2 sequência numéricas, a primeira no intervalo de 2 à 10 e com o step igual a 2. Logo foram impresso 4 elementos no intervalo de 2 à 10.

Em seguida, novamente com a função range() definimos uma segunda sequência numérica no intervalo de 0 à 30 e o step igual a 3. Logo, foi impresso uma lista, contendo 10 elementos, onde o primeiro é o 0 e o último o 27. Também é possível observar, que a sequência gerada é a tabuada de 3, faltando somente o último valor e para isso, bastava somente definir o intervalo final como sendo igual a 31.

EXEMPLOS DA DOCUMENTAÇÃO OFICIAL DO PYTHON

Os exemplos a seguir, foram extraídos da documentação oficial do Python e demonstram situação interessantes com o uso da função range(). Vale a pena o estudo de cada situação detalhadamente.

#coding: utf-8

#gerando uma sequência de 0 à 9
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#gerando uma sequência de 1 à 11
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

#gerando uma sequência de 0 à 30 com step=5
>>> list(range(0, 30, 5))
[0, 5, 10, 15, 20, 25]

#gerando uma sequência os 5 primeiros números da tabuada de 3
>>> list(range(0, 10, 3))
[0, 3, 6, 9]

#gerando uma sequência numérica negativa
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

#gerando uma sequência numérica vazia
>>> list(range(0))
[]

#gerando uma sequência numérica vazia,
#onde o interval inicial é maior do que o final
#por essa razão, há lista é nula
>>> list(range(1, 0))
[]


Tags curso, python, lista, for loop, iteração, looping, range

Comentários

comments powered by Disqus