Como Funciona o range() no Python

Logo do Python com expressão pensativa e o texto range(), representando a função range no Python

A função range() é uma das mais usadas no Python, principalmente quando o assunto é laços de repetição. Ela serve para gerar uma sequência de números de forma automática, sem que você precise criar uma lista manualmente.

Mesmo sendo simples, o range() tem detalhes importantes que fazem toda a diferença no dia a dia de quem programa em Python. Neste artigo, você vai entender como o range funciona, como usá-lo em diferentes situações e quais são seus parâmetros principais.


O que é o range() no Python?

No Python, range() é uma função embutida (built-in) que gera uma sequência de números inteiros.
Em vez de escrever uma lista manual como [0, 1, 2, 3, 4], você pode usar:

Python

for numero in range(5):
    print(numero)
Pronto para executar

O range(5) cria uma sequência que começa em 0 e vai até 4, ou seja, o número final não é incluído.
Essa característica é chamada de intervalo exclusivo no fim.


Por que o range é tão usado em Python?

A função range() é usada principalmente em loops for, que servem para repetir instruções várias vezes.

Ela é muito útil porque:

  • Economiza código, evitando criar listas grandes manualmente.
  • Gasta pouca memória, já que o range() não guarda todos os números na memória de uma vez.
  • Facilita a leitura, deixando o código mais limpo e direto.

Estrutura básica do range()

A função range() pode ser usada de três formas diferentes:

range(stop)
range(start, stop)
range(start, stop, step)

Vamos entender cada uma delas.


1. range(stop)

Usado quando você quer uma sequência que começa em 0 e termina antes do valor informado.

Python

for i in range(5):
    print(i)
Pronto para executar


O Python cria números de 0 até 4, parando antes do 5.
Isso é muito comum em laços simples.


2. range(start, stop)

Aqui você define o início e o fim da sequência.

Python

for i in range(2, 6):
    print(i)
Pronto para executar


O Python começa no número 2 e vai até 5, sem incluir o 6.
Isso é útil quando você não quer começar do zero.


3. range(start, stop, step)

Essa é a forma mais completa do range().
Você pode definir também o passo (o quanto o número aumenta a cada repetição).

Python

for i in range(0, 10, 2):
    print(i)
Pronto para executar


Nesse caso, o loop pula de dois em dois.
O valor de step define esse salto.


Usando valores negativos no range()

O parâmetro step também pode ser negativo, o que faz a contagem ser decrescente.

Python

for i in range(10, 0, -1):
    print(i)
Pronto para executar


Aqui o loop começa em 10 e termina em 1.
Quando o passo é negativo, o Python entende que você quer diminuir os números.


range() não cria uma lista completa na memória

Um erro comum entre iniciantes é achar que o range() cria uma lista completa.
Na verdade, ele gera os números sob demanda, o que economiza memória.

Você pode comprovar isso com o comando type():

Python

r = range(100)
print(type(r))
Pronto para executar

Ou seja, r não é uma lista, e sim um objeto do tipo range.
Para transformá-lo em uma lista, use:

Python

lista = list(range(5))
print(lista)
Pronto para executar

Exemplo prático: somando números com range()

Vamos fazer um exemplo mais útil.
Imagine que você quer somar todos os números de 1 a 10:

Python

soma = 0
for i in range(1, 11):
    soma += i
print(soma)
Pronto para executar


O código percorre todos os números e soma cada um deles.
Esse é um exemplo simples, mas mostra bem como o range() é prático em cálculos.


Dica: usando range() com len()

O range() também é muito útil para percorrer listas usando índices.
Por exemplo:

Python

nomes = ["Ana", "Carlos", "Maria"]
for i in range(len(nomes)):
    print(f"Posição {i}: {nomes[i]}")
Pronto para executar


Nesse caso, o range() vai de 0 até o tamanho da lista (sem incluir o último número).


Comparando range() com listas manuais

Veja a diferença entre usar range() e uma lista manual:

Código com listaCódigo com range()
for i in [0,1,2,3,4]:for i in range(5):
Usa mais memóriaUsa menos memória
Precisa digitar cada númeroGera automaticamente
Difícil de mudar o tamanhoFácil de ajustar com parâmetros

Como inverter a ordem do range()

Além de usar step negativo, você também pode inverter a sequência usando a função reversed():

Python

for i in reversed(range(5)):
    print(i)
Pronto para executar


Essa abordagem é útil quando você quer percorrer números em ordem inversa sem mudar o step.


Range() em combinações e repetições

Você também pode combinar o range() com funções como enumerate() ou zip().

Por exemplo, para mostrar o índice e o valor ao mesmo tempo:

Python

nomes = ["Lucas", "Paula", "João"]
for i, nome in zip(range(len(nomes)), nomes):
    print(i, nome)
Pronto para executar


Essa combinação deixa o código mais organizado e previsível.


Conclusão

A função range() é uma das mais úteis e versáteis do Python.
Com ela, você pode gerar sequências numéricas de forma simples, sem ocupar muita memória.

Ela é perfeita para loops, contadores, índices de listas e até operações matemáticas.
Saber usar bem o range() é essencial para dominar as bases da programação em Python.


Perguntas Frequentes (FAQ)

1. O que é a função range() no Python?
É uma função que cria uma sequência de números inteiros de forma automática.

2. O range() inclui o último número?
Não. Ele vai até o valor anterior ao número final definido.

3. Como usar o range() com passo?
Use três parâmetros: range(início, fim, passo).

4. Posso usar números negativos no range()?
Sim. Basta usar um passo negativo, como range(10, 0, -1).

5. O range() cria uma lista completa?
Não. Ele gera os números conforme o programa precisa.

6. Como transformar um range em lista?
Use list(range(5)) para converter em lista.

7. O range() serve para loops for?
Sim. Ele é mais usado justamente dentro de laços for.

8. Posso usar o range() com len()?
Sim. Isso permite percorrer listas usando índices.

9. É possível inverter um range()?
Sim. Use reversed(range(n)) para inverter a ordem.

10. O range() é mais rápido que listas grandes?
Sim. Ele usa menos memória e é mais eficiente.


Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados