Faixa Python para contagem e indexação rápida

O intervalo python integrado cria uma sequência imutável de números inteiros definidos por início, parada e etapa. Use-o quando precisar de contadores confiáveis ​​ou compensações de índice sem alocar uma lista de cada número. Ele destaca como iniciar, parar e controlar os números inteiros que um intervalo produz. Para padrões de loop que usam range, consulte o exemplo de loop for do Python.

Exemplo de intervalo Python para contagem de etapas

Saída:

A saída aparecerá aqui...

Saída:

pen: 10 mm
stapler: 30 mm

Como este exemplo funciona

  1. range(0, len(items), 2) percorre os índices da lista com um passo de 2.
  2. O valor do stop é exclusivo, portanto nunca chega a len(items).
  3. Cada índice lê um item e imprime um valor vinculado ao índice (10, 30).

Armadilhas comuns com intervalo python

Erro 1: esperar que o valor do stop seja incluído.

for n in range(1, 5):
    print(n)
for n in range(1, 6):
    print(n)

Por que isso acontece: range para antes do valor de parada, portanto, sequências inclusivas precisam de stop + 1.

Erro 2: usar um passo positivo durante a contagem regressiva.

for n in range(5, 0, 1):
    print(n)
for n in range(5, 0, -1):
    print(n)

Por que isso acontece: um passo positivo só sobe; para fazer a contagem regressiva, o passo deve ser negativo ou o intervalo está vazio.

Erro 3: passar números não inteiros para iniciar, parar ou passo.

for rate in range(0, 1, 0.1):
    print(rate)
for basis_points in range(0, 101, 5):
    rate = basis_points / 100
    print(rate)

Por que isso acontece: os argumentos range devem ser inteiros (ou implementar __index__) e o passo não pode ser zero.

intervalo python vs lista (intervalo): qual usar

Use range quando…Use list(range(...)) quando…
Você só precisa iterar ou indexar por números inteiros.Você deve armazenar ou alterar os números posteriormente.
Você quer memória constante durante o loop.Você está bem pagando O(n) memória por uma lista concreta.
Você precisa de um objeto de sequência com matemática de início, parada e etapas previsíveis.Você precisa de métodos de lista como append ou sort.

Regra prática: procure range para iteração e compensações; materialize uma lista somente quando você realmente precisar de todos os valores na memória. Quando você precisar de pares índice + valor, prefira enumerate — veja o exemplo de enumeração do Python.

Considerações de desempenho

range armazena apenas início, parada e passo, portanto usa memória O(1) mesmo para sequências enormes. Verificações de associação como n in range(...) são de tempo constante para números inteiros, o que é mais rápido do que verificar uma lista. Se você chamar list(range(...)), você paga O(n) memória e tempo para alocar cada valor, então faça isso somente quando precisar de uma lista real.

Mais padrões para intervalo python

Contagem regressiva de novas tentativas com um passo negativo.

for remaining in range(3, 0, -1):
    print(f"Retrying in {remaining}s")

O passo negativo faz a sequência descer e o valor de parada ainda é exclusivo. Isso mantém uma contagem regressiva curta e previsível, sem condicionais extras.

Gere horário comercial sem armazenar uma lista.

for hour in range(9, 18):
    print(f"{hour}:00")

range(9, 18) rende 9 a 17, o que corresponde a uma programação das 9 às 5 com uma parada exclusiva. Esta é uma maneira limpa de produzir slots fixos sem pré-construir os números.

Quando usar o intervalo python

  • Use-o para contadores, deslocamentos ou loops de passo fixo onde os dados são uma sequência inteira.
  • Use-o quando desejar uma sequência com uso eficiente de memória em vez de uma lista pré-construída.
  • Evite-o para etapas não inteiras; dimensione para números inteiros ou use outras ferramentas numéricas.
  • Evite list(range(...)), a menos que precise armazenar ou alterar os valores posteriormente.