Como Funciona o range() no Python

Tempo de leitura: 6 minutos
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

    Fundamentos
    Foto do Leandro Hirt

    Jogo da Forca em Python para iniciantes

    O Jogo da Forca em Python é uma ótima maneira de praticar lógica de programação, manipulação de strings e controle

    Ler mais

    Tempo de leitura: 6 minutos
    07/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Introdução a Type Hints no Python

    A linguagem de programação Python é famosa por ser fácil de ler e simples de aprender. Muitas pessoas escolhem o

    Ler mais

    Tempo de leitura: 11 minutos
    07/02/2026
    Logo do Python com o texto 'Python argparse CLI' abaixo
    Fundamentos
    Foto do Leandro Hirt

    Criando CLI em Python com argparse

    Uma interface de linha de comando (CLI) permite que usuários executem tarefas digitando comandos em um terminal. Em Python, a

    Ler mais

    Tempo de leitura: 5 minutos
    06/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Como Usar f-strings para Debugar no Python

    Debugar um código é uma das tarefas mais importantes na vida de quem programa. Muitas vezes, o programa não funciona

    Ler mais

    Tempo de leitura: 11 minutos
    06/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Como Usar PyScript: Execute Python no Seu Navegador

    Você já imaginou poder criar sites incríveis usando apenas a linguagem Python? Durante muito tempo, quem queria construir a parte

    Ler mais

    Tempo de leitura: 14 minutos
    05/02/2026
    Fundamentos
    Foto do Leandro Hirt

    Como criar arquivos PDF com Python via FPDF

    Gerar documentos de forma automática é uma habilidade valiosa para qualquer pessoa que trabalha com tecnologia. Criar arquivos PDF com

    Ler mais

    Tempo de leitura: 13 minutos
    04/02/2026