Quando começamos a dar os primeiros passos no mundo da programação com Python, um dos conceitos comuns que encontramos é o da função range
. Mas, afinal de contas, o que é esse tal de range
em Python? Por que ele é tão importante para quem está aprendendo a programar?
Neste artigo, você vai descobrir o que é a função range
em Python e como ela pode ser usada para estruturar seus loops e sequências numéricas de maneira eficiente. Abordaremos os argumentos que ela aceita, bem como alguns casos comuns de uso. Vamos lá!
O que é a função range
em Python?
A função range
serve para criar uma sequência de números. Você pode passar um número único como argumento para a função, como range(10)
, para criar uma sequência numérica indo de zero até o número, sem incluí-lo. Adicionalmente, é possível escolher um número de início (por padrão, 0
) e de “pulo” ou intervalo da sequência (por padrão, 1
).
# Sequência de inteiros de 0 a 9
seq_numeros = range(10)
print(seq_numeros)
TestarNeste caso, a função range(10)
preparou uma sequência de números de 0 a 9 para nós. No entanto, para visualizarmos essa sequência, precisamos convertê-la em uma lista de Python:
seq_numeros = range(10)
print(list(seq_numeros))
# output:
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
TestarPara que serve a função range
?
O range
é a principal forma de criar sequências numéricas em Python. Ele está incluso na biblioteca padrão de Python e é uma das funções built-in da linguagem. Portanto, não é preciso importar nada para ter acesso a ela.
Um dos usos mais comuns da função range
em Python é para gerar números sobre os quais podemos iterar sobre em um loop.
Diferença entre lista e range
em Python
Embora tanto as listas quanto a função range
sejam usadas para trabalhar com sequências de valores, elas possuem algumas distinções fundamentais. Enquanto as listas são mutáveis e podem conter diferentes tipos de dados, o objeto range
é imutável e gera sequências numéricas sob demanda, otimizando o uso de memória.
Por exemplo, uma lista é definida entre colchetes e pode conter uma mistura de tipos de dados:
# Criando uma lista com diferentes tipos de dados
minha_lista = [1, 'Dois', True]
print(minha_lista)
TestarEm contrapartida, o range
, como visto anteriormente, é invocado através de uma função própria na qual determinamos o valor final da sequência de números. Para visualizar uma lista de números de 0 a 9, por exemplo, podemos comparar as abordagens:
numeros_lista = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numeros_lista)
numeros_range = range(10)
print(list(numeros_range))
TestarÉ importante salientar que um range
em si não é uma lista, mas sim um objeto próprio do Python que gera os números conforme necessário. Isso o torna eficiente em termos de memória: se escrevermos range(1000000)
, os números não são computados de antemão. O range
apenas mantém a lógica necessária para criar os números, um a um.
Range e Memória
Um ponto importante a ser destacado é que a função range()
não gera todos os números de uma vez e os armazena na memória. Em vez disso, ela cria um objeto do tipo range
que é um iterável. Isso significa que os números são gerados sob demanda, o que é muito mais eficiente em termos de uso de memória, especialmente para sequências grandes.
Argumentos da função range
O range
em Python é uma função flexível, que aceita até três argumentos: o fim (stop), início (start) e pulo (step) da sequência. Dessa forma, conseguimos ajustar o comportamento da sequência numérica gerada, de acordo com a necessidade.
O argumento stop
O stop é o ponto final da nossa sequência. Quando passamos apenas um valor para o range, estamos passando o valor de stop.
Note que o valor de stop nunca aparece incluso na sequência numérica. Se utilizarmos range(5)
, estamos dizendo “crie números de 0 até 4, avançando de um a um”.
O argumento start
Quando queremos informar de onde a sequência deve começar, usamos o start. Isso é bastante útil quando não queremos iniciar a contagem a partir de zero.
Quando passamos dois argumentos para o range
, o primeiro argumento corresponde ao valor de start. Por exemplo, range(3, 8)
gera os números de 3 a 7, avançando de um a um.
O argumento step
O step define o tamanho do “pulo” entre os números na sequência. Por padrão, esse valor é 1
, o que significa que avançamos pelos números de um a um.
Se quisermos apenas números pares, poderíamos criar um range
um pulo de 2
, como na sequência range(2, 11, 2)
. Isso geraria a sequência 2, 4, 6, 8, 10.
Note que o step só aparece quando passamos 3 argumentos para a função range
. Ao combinarmos start, stop e step, somos capazes de criar sequências sob medida!
Podemos ver todos os argumentos da função range em ação no trecho de código a seguir. Nele, criamos uma sequência numérica de 3 a 9, pulando de 3 em 3:
seq_numeros = range(3, 10, 3)
print(list(seq_numeros))
# output:
# [3, 6, 9]
TestarExemplos de uso da função range
Agora que já sabemos o que é a função range
e como seus argumentos funcionam, vamos aplicar esse conhecimento em alguns exemplos práticos.
Como usar for i in range
em Python
Podemos combinar um loop for
com a função range
para fazer uma determinada ação um certo número de vezes:
# Repetindo uma frase 5 vezes
for i in range(5):
print("Estou programando em Python!")
TestarObserve que a variável numérica do range
não é usada. Apenas precisamos defini-la para satisfazer a sintaxe do loop. Quando isso acontece, os programadores mais experientes em Python costumam utilizar _
como nome de variável, justamente como forma de indicar que ela não é relevante:
# Repetindo uma frase 5 vezes
for _ in range(5):
print("Estou programando em Python!")
TestarComo usar range len
em Python
A função range
é frequentemente combinada com a função len
para gerar índices de uma lista. Assim é possível pegar cada um dos elementos da lista a partir do seu índice:
cores = ['vermelho', 'azul', 'verde']
for i in range(len(cores)):
cor = cores[i]
print(f'Cor no índice {i} é: {cor}')
TestarDito isso, uma dica em Python é utilizar a função enumerate
nestes casos, que já retorna cada elemento juntamente de seu índice em um loop:
cores = ['vermelho', 'azul', 'verde']
for i, cor in enumerate(cores):
print(f'Cor no índice {i} é: {cor}')
TestarComo reverter um range
Para criar uma contagem regressiva com um range
, podemos passar um valor negativo para o step:
# Contagem regressiva: 5, 4, 3, 2, 1
for i in range(5, 0, -1):
print(i)
TestarEssa construção pode ser um pouco confusa, porque o valor de start precisa ser maior que o stop. Mas, se preferir, pode também passar um range
qualquer para a função reversed
:
# Contagem regressiva: 5, 4, 3, 2, 1
for i in reversed(range(1, 6)):
print(i)
TestarComo criar um range
decrescente
Para criar um range
decrescente, basta passar um pulo negativo. Assim invertemos o range
, que passa a ser gerado do seu maior número para o menor:
for i in range(10, 0, -1):
print(f'Contagem: {i}')
TestarConclusão
Ao dominar a função range
, você abre um leque de possibilidades para controlar seus loops em Python e gerar sequências numéricas de maneira eficiente. Ela é uma ferramenta indispensável no seu kit de programação Python.
Então, o que você está esperando? Comece a agora mesmo com o curso gratuito Python para Iniciantes, da Asimov Academy, e aprenda sobre range
, loops, variáveis e muito mais!
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários