Função built-in Python range()

Da documentação do Python 3

Em vez de ser uma função, range é na verdade um tipo de sequência imutável, conforme documentado em Ranges and Sequence Types — list, tuple, range.

Introdução

O tipo range é comumente usado em loops for para iterar um número específico de vezes. range aceita três parâmetros, start, stop e step. Cada parâmetro deve ser um inteiro (seja o int built-in ou qualquer objeto que implemente o método especial index()).

Se houver apenas um parâmetro, ele representa o parâmetro stop. Se o parâmetro step for omitido, ele terá o valor padrão de 1. Se o parâmetro start for omitido, ele terá o valor padrão de 0.

Ranges suportam índices negativos, mas estes são interpretados como indexação a partir do final da sequência determinada pelos índices positivos.

***A vantagem do tipo range sobre uma list ou tuple regular é que um objeto range sempre ocupará a mesma (pequena) quantidade de memória, independentemente do tamanho do intervalo que ele representa.

Parâmetros de Entrada

Ranges implementam todas as operações comuns de sequência, exceto concatenação e repetição (devido ao fato de que objetos range só podem representar sequências que seguem um padrão estrito e repetição e concatenação geralmente violam esse padrão).

start:

  • O valor do parâmetro start
  • Se não for fornecido, o parâmetro terá o valor padrão de 0
  • O valor do parâmetro é inclusivo

stop

  • O valor do parâmetro stop
  • O único parâmetro que é obrigatório
  • O valor do parâmetro é exclusivo

step

  • O valor do parâmetro step
  • Se não for fornecido, o parâmetro terá o valor padrão de 1

Exemplos

Range com apenas o parâmetro stop especificado

for i in range(5):
    print(i)
0
1
2
3
4

Range com os parâmetros start e stop

for i in range(1, 8):
    print(i)
1
2
3
4
5
6
7

Range com todos os parâmetros especificados

for i in range(0, 30, 5):
    print(i)
0
5
10
15
20
25

Range com todos os parâmetros, onde o parâmetro stop não é divisível pelo parâmetro step

for i in range(0, 10, 3):
    print(i)
0
3
6
9

Range com todos os parâmetros, onde os parâmetros stop e step são negativos

for i in range(0, -6, -1):
    print(i)
0
-1
-2
-3
-4
-5

Dois exemplos onde o parâmetro stop é definido como 0

for i in range(0):
    print(i)
(sem saída)
for i in range(1, 0):
    print(i)
(sem saída)