Função built-in Python range()
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)