Função range() em Python
A função range()
: retorna todos os números inteiros de 0 atérange(stop)
(exclusivo).stop
: retorna todos os números inteiros do intervalo de start (inclusivo) até stop (exclusivo).range(start, stop)
: retorna números inteiros do intervalo derange(start, stop, step)
(inclusivo) atéstart
(exclusivo), com incremento definido porstop
.step
Exemplos de uso:
range(5) # 0, 1, 2, 3, 4
range(1, 5) # 1, 2, 3, 4
range(2, 10, 2) # 2, 4, 6, 8
range(10, 2, -2) # 10, 8, 6, 4
Os intervalos são comumente usados em laços for. Por exemplo, para imprimir todos os números de 0 a 4 de forma sequencial:
for i in range(5):
print(i, end=" ")
# Saída no console:
# 0 1 2 3 4
Outro exemplo: imprimir a tabela de multiplicação:
for i in range(1, 10):
for j in range(1, 10):
print(i * j, end="\t")
print("\n")
Saída:
1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81
Se precisarmos de uma lista sequencial de números, a função range
numbers = list(range(10))
print(numbers) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
numbers = list(range(2, 10))
print(numbers) # [2, 3, 4, 5, 6, 7, 8, 9]
numbers = list(range(10, 2, -2))
print(numbers) # [10, 8, 6, 4]
Um dos benefícios dos intervalos em comparação com listas e tuplas padrão é que um intervalo sempre ocupará a mesma quantidade de memória, independentemente do conjunto de números que representa. Isso ocorre porque o intervalo armazena apenas o valor inicial, o valor final e o incremento.