Python range: o guia completo da função range

A função range é uma função incorporada em Python que permite gerar sequências de números de forma simples e controlada. Assim, a função é muito útil em muitos casos, desde uma simples iteração sobre uma lista ou dicionário até a criação de listas de verificação e outros casos mais complexos.

Neste artigo, vamos explorar a funcionalidade da função range em Python, incluindo sua sintaxe básica e avançada, como usá-la em loop e compará-la com outras soluções disponíveis em Python. Vamos começar por apresentar a sintaxe básica da função range, bem como as formas de alterar seus parâmetros para gerar sequências personalizadas.

Em seguida, vamos mostrar como utilizar a função range em diferentes tipos de loop, como loop for e loop while, para realizar operações em cada número da sequência gerada. Também vamos mostrar alguns exemplos práticos de uso da função range em programas Python.

Por fim, vamos comparar a função range com outras soluções disponíveis em Python, como a função xrange e a classe range(). Ao final do artigo, teremos uma compreensão mais profunda sobre como usar a função range em Python e como aplicá-la para resolver problemas de programação em diferentes contextos.

Sintaxe da função range no python

Sintaxe básica

A sintaxe básica da função range em Python. Que permite criar uma sequência de valores ou inteiros, com incremento opcional ou diferença entre valores consecutivos.

Exemplo para gerar sequência de números inteiros:

range(1, 10) # Gera a sequência [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Como alternativa, você também pode especificar a sequência de valores diretamente:

range(1, 9, 2) # Gera a sequência [1, 3, 5, 7, 9]

E você também pode usar o operador  *:

range(1, 9, 2)*2 # Gera a sequência [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Sintaxe avançada

Além da sintaxe básica, existem diversos recursos avançados que tornam a função mais poderosa e versátil.

Consequentemente um desses recursos é a capacidade de usar o argumento step para especificar um incremento personalizado ou diferença entre valores consecutivos na sequência. Assim sendo permitindo gerar uma sequência de dados com um padrão específico, como uma sequência de números primos ou uma sequência de números de Fibonacci.

Veja um exemplo:

range(start, stop, step)

onde:

  • start é o primeiro valor na sequência que você deseja gerar
  • stop é o último valor na sequência que você deseja gerar
  • step é o incremento ou diferença entre valores consecutivos na sequência (opcional)

É possível usar a função range() para gerar uma sequência de valores e, em seguida, usar esses valores para criar uma lista ou conjunto. Veja no exemplo, a função gerar_sequencia recebe os três argumentos: startstop e step. O start é o valor inicial da sequência, o stop é o valor final da sequência e o step é o tamanho do passo entre os valores da sequência. A função retorna a sequência de números inteiros gerada:

# Função para gerar uma sequência de números inteiros
def gerar_sequencia(start, stop, step):
    # Cria a sequência de números inteiros
    sequencia = range(start, stop, step)
    return sequencia

# Exemplo de uso da função
sequencia = gerar_sequencia(1, 10, 1)
print(sequencia) 

A saída será:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Outra forma de usá-la é como um loop. Neste exemplo, a função gerar_sequencia é usada dentro de um loop while para gerar uma sequência de números inteiros de 1 a 10 e imprimir cada valor da sequência:

# Função para gerar uma sequência de números inteiros
def gerar_sequencia(start, stop, step):
    # Cria a sequência de números inteiros
    sequencia = range(start, stop, step)
    return sequencia

# Exemplo de uso da função como loop
i = 1
while i <= 10:
    print(i)
    i += 1

A saída será:

1
2
3
4
5
6
7
8
9
10

função range com a função map

Outro recurso avançado da função range é sua capacidade de ser usado em conjunto com a função map(). A função map() permite aplicar uma função ou operação específica a cada valor na sequência e a função range() permite especificar o intervalo de valores sobre o qual a função deve ser aplicada. Isso permite que você crie ferramentas incríveis.

Neste exemplo, a função adicionar_um é uma função que adiciona 1 a cada número passado para ela. A função gerar_sequencia é usada para gerar uma sequência de números inteiros de 1 a 10. Em seguida, a função map() é usada para aplicar a função adicionar_um a cada elemento da sequência gerada e a lista resultante é impressa. Veja:

# Função para adicionar 1 a cada número da sequencia
def adicionar_um(numero):
    return numero + 1

# Função para gerar uma sequencia de números inteiros
def gerar_sequencia(start, stop):
    # Cria a sequencia de números inteiros
    sequencia = range(start, stop)
    return sequencia

# Exemplo de uso da função
sequencia = gerar_sequencia(1, 10)
mapeada = map(adicionar_um, sequencia)
print(mapeada)

A saída será:

 [2, 3, 4, 5, 6, 7, 8, 9, 10]

Outro exemplo, a função adicionar_dois é uma função que multiplica cada número passado para ela por 2. A função gerar_sequencia é usada para gerar uma sequencia de números inteiros de 1 a 10. Em seguida, a função map() é usada para aplicar a função adicionar_dois a cada elemento da sequencia gerada e a lista resultante é impressa. Veja:

# Função para adicionar 2 a cada número da sequencia
def adicionar_dois(numero):
    return numero * 2

# Função para gerar uma sequencia de números inteiros
def gerar_sequencia(start, stop):
    # Cria a sequencia de números inteiros
    sequencia = range(start, stop)
    return sequencia

# Exemplo de uso da função
sequencia = gerar_sequencia(1, 10)
mapeada = map(adicionar_dois, sequencia)
print(mapeada)

A saída será:

[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

No geral,  compreendendo seus recursos avançados e vários usos, você pode usar a  função range()para gerar dados valiosos e úteis para seus projetos e para criar análises de dados e ferramentas de desenvolvimento de software mais poderosas e eficientes.

Gerando sequências com a função range

Sequências Contínuas

A função range() do Python é usada para gerar uma sequência de números contínuos. Ela recebe três parâmetros: o primeiro é o número inicial da sequência, o segundo é o último número da sequência e o terceiro é o passo da sequência.

Ao usar a função range() com um passo de 1, você obterá uma sequência contínua de números inteiros, começando pelo número inicial e terminando pelo último número. Por exemplo, range(1, 6) irá gerar a sequência de números inteiros de 1 a 5.

range1 = range(1, 6)
print(range1)

A saída será:

range(1, 6)
[1, 2, 3, 4, 5]

Se você quiser uma sequência parcial com um passo diferente, você pode especificar o passo como o terceiro parâmetro da função range(). Por exemplo, range(1, 10, 2) irá gerar a sequência parcial de números inteiros de 1 a 8, com um passo de 2.

range2 = range(1, 10, 2)
print(range2)

A saída será:

range(1, 10, 2)
[1, 3, 5, 7, 9]

Note que, se você especificar o último número como o segundo parâmetro da função range(), ela irá gerar uma sequência contínua de números inteiros, começando pelo número inicial e terminando pelo último número especificado. Por exemplo, range(1, 11) irá gerar a sequência contínua de números inteiros de 1 a 10.

range3 = range(1, 11)
print(range3)

A saída será:

range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Entretanto, se você precisar gerar sequências contínuas com valores personalizados, você pode alterar os parâmetros da função range(). Por exemplo, range(10) irá gerar uma sequência contínua de números inteiros de 0 a 9. Se você quiser começar a sequência no número 100, você pode fazer isso ajustando o segundo parâmetro para 100:

range4 = range(100)
print(range4)

A saída será:

range(100)
[100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30,29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Essa é uma das maneiras de gerar sequências contínuas com a função range . Você também pode ajustar o passo da sequência usando o terceiro parâmetro, como mencionado anteriormente. Lembre-se que, se o segundo parâmetro for menor que o primeiro, a função range() irá gerar uma sequência vazia.

Sequências Parciais

A função range() do Python pode ser usada para gerar sequências parciais, ou seja, sequências que contêm um número limitado de elementos. Portando, você pode especificar um segundo parâmetro maior que o primeiro, o que fará com que a função retorne uma sequência vazia.

Por exemplo, range(5, 15) irá gerar a sequência parcial de números inteiros de 5 a 14.

range5 = range(5, 15)
print(range5)

A saída será:

range(5, 15)
[5, 6, 7, 8, 9, 10, 11, 12, 13, 14]

Em contrapartida, se você quiser uma sequência parcial com um passo diferente, você pode especificar o passo como o terceiro parâmetro da função range(). No exemplo, irá gerar a sequência parcial de números inteiros.

range(1, 10, 2)

A saída será:

[1, 3, 5, 7, 9]

Uso da função range em loop for 

A função range é uma função incorporada em Python que permite gerar sequências de números. Podemos usar um loop for para iterar sobre uma sequência de números em Python e executar uma ação para cada número da sequência.

Dessa forma, para usar a função range em um loop for, assim basta passar o argumento range para a função for e especificar os parâmetros necessários. Por exemplo, para iterar sobre uma sequência de números de 0 a 4, o código seria:

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

O resultado seria:

0
1
2
3
4

Além disso, é possível usar a função range em um loop for para iterar sobre uma sequência de números, com ou sem incremento. Por exemplo:

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

Da mesma forma, o resultado seria o mesmo que o exemplo anterior.

Também é possível especificar os parâmetros opcionais do range para gerar uma sequência de números diferentes. Por exemplo, para iterar sobre uma sequência de números de 1 a 10, exceto os números pares, o código seria:

for i in range(1, 11, 2):
    print(i)

O resultado seria:

1
3
5
7
9

Em resumo a função range cria uma sequência de números inteiros, começando no número especificado no primeiro parâmetro e terminando no número especificado no segundo parâmetro. Além do mais, se você precisar de uma sequência de números não inteiros ou com um intervalo diferente, é possível usar outras funções, como xrangerange(stop=None) ou range(1, stop), respectivamente.

Exemplos práticos de uso da função range em programas Python

A função range é uma função incorporada em Python que permite gerar sequências de números. Programas Python podem usar a linguagem em várias situações práticas.

Criando uma lista que contenha as primeiras 1000000000 (10 bilhões) números perfeitos.

Como resultado, um exemplo prático de uso da função range seria criar uma lista que contenha as primeiras 1000000000 (10 bilhões) números perfeitos. Para isso, é possível usar um loop for e a função range da seguinte forma, no código abaixo irá criar uma lista chamada numbers que contém os primeiros 10 bilhões de números perfeitos. Imprimiremos cada número na tela a cada iteração do loop. Veja:

n = 1000000000
numbers = []

for i in range(n):
    numbers.append(i)
    print(i)

Criando uma lista que contenha os números de 1 a 100, somados de forma alternada.

Dessa forma é possível usar um loop for e a função range da seguinte forma, no código abaixo irá criar uma lista chamada numbers que contém os números de 1 a 100, somados de forma alternada. Portanto, adicionaremos cada número à lista se ele for par ou subtrairemos 1 se for ímpar. Veja:

numbers = []

for i in range(1, 101):
    if i % 2 == 0:
        numbers.append(i)
    else:
        numbers.append(i - 1)

print(numbers)

O resultado será uma lista com os números 1, 3, 5, 7, …, 97, 99.

Criando uma lista que contenha os números de 1 a 1000, divididos em grupos de 10.

Logo podemos verificar que é possível usar a função range em conjunto com um ciclo for para dividir uma sequência de números em grupos. Para isso, basta especificar o número de elementos que deseja incluir em cada grupo, adicionando o parâmetro step à função range.

Por exemplo, podemos criar uma lista que contenha os números de 1 a 1000, divididos em grupos de 10, o código seria:

numbers = []

for i in range(1, 1001, 10):
    numbers.append(i)

print(numbers)

Portanto se você especificar o parâmetro step como 1, a função range irá gerar uma sequência de números contínuos, começando no número especificado e terminando no número especificado. Contudo se especificar um step negativo, a sequência de números vai ser gerada em ordem inversa. Se você especificar um step diferente de 1, a sequência de números vai ser gerada com um intervalo diferente do normal.

Comparação da função range em python com outras soluções disponíveis

A função range no python é uma função incorporada que retorna uma sequência de números inteiros contíguos. Essa função é equivalente à função xrange() no Python 2, que retorna uma sequência de números inteiros contíguos, por outro lado em vez de retornar uma copia dos números, ela retorna um objeto xrange que é uma referência a uma tabela de números.

De fato, a classe range em python é uma classe em que derivada da classe xrange(), e possui os mesmos métodos e atributos. Contudo temos a principal diferença entre as duas é que a classe range() é usada para criar uma instância de um objeto range, enquanto a função xrange() retorna uma referência a um objeto xrange.

Embora a classe range seja uma forma mais moderna de acessar a sequência de números inteiros contíguos, a função xrange() ainda é amplamente usada em código antigo e em algumas situações em que é necessário criar um objeto xrange.

Ainda assim, em termos de desempenho, a função range é mais eficiente do que a classe range(), pois ela é uma função incorporada e não requer a criação de uma nova instância de objeto. Além disso, a classe range() é mais complexa do que a função xrange(), e pode ser menos legível para os desenvolvedores.

No geral, a escolha entre o uso da função range no python, a função xrange() ou a classe range() depende das necessidades específicas do projeto e da experiência do desenvolvedor.

Aplicações da função range em python

A função range() em Python é amplamente usada em vários tipos de aplicações, incluindo:

  1. Cálculos matemáticos: As pessoas frequentemente utilizam a função para gerar sequências de números em cálculos matemáticos, como iterar sobre um intervalo de números.
  2. Teste de programas: As pessoas utilizam amplamente Python para gerar sequências de valores em testes de programas.
  3. Gerando números aleatórios: A função range() pode ser usada para gerar sequências de números aleatórios, como em jogos ou simulations.
  4. Programação orientada a objetos: A função range() é frequentemente usada em programação orientada a objetos para gerar sequências de valores para testes de programas.
  5. Processamento de imagens:  Os desenvolvedores podem utilizar Python para gerar sequências de números e aplicá-las no processamento de imagens, como em algoritmos de filtragem, etc.

Conclusão

A função range em Python é uma função incorporada muito útil e versátil para gerar sequências de números inteiros contíguos. Assim as pessoas utilizam amplamente a linguagem Python em várias aplicações, que incluem cálculos matemáticos, teste de programas, geração de números aleatórios, programação orientada a objetos e processamento de imagens. Embora a classe range() seja uma forma mais moderna de acessar a sequência de números inteiros contíguos, a função ainda é amplamente usada e é uma escolha popular para muitos desenvolvedores. Embora a classe range seja mais complexa do que a função xrange(), a função range() é mais eficiente e está mais legível para os desenvolvedores. Em resumo, a função range() é uma ferramenta valiosa para quem trabalha com Python e é amplamente utilizada em muitos projetos. Aprenda também sobre Scan em python!

Este artigo foi útil?

Obrigado pela resposta!
Picture of Schênia T

Schênia T

Cientista de dados, apaixonada por ferramentas de tecnologia e games. Graduanda em Estatística pela UFPB. Seu hobby é maratonar séries, curtir uma boa música trabalhando ou cozinhando, ir ao cinema e aprender coisas novas!

Contato: schenia.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!