Pular para o conteúdo

Como usar a função range em Python de forma reversa

[

Python range(): Representar Ranges Numéricos

por Geir Arne Hjelle Jan 10, 2024 - basics python

Construir Ranges Numéricos

Em Python, range() é integrado. Isso significa que você sempre pode chamar range() sem fazer nenhuma preparação antes. Chamar range() constrói um objeto range que você pode usar. Mais tarde, você verá exemplos práticos de como usar objetos range.

Você pode fornecer range() com um, dois ou três argumentos inteiros. Isso corresponde a três casos de uso diferentes:

  1. Ranges contando a partir do zero
  2. Ranges de números consecutivos
  3. Ranges saltando números

Você aprenderá como usar cada um deles a seguir.

Contar a partir do zero

Quando você chama range() com um argumento, você cria um range que conta a partir do zero e vai até, mas não inclui, o número que você forneceu:

range(5)

Contar de um ponto de início até um ponto de parada

Quando você chama range() com dois argumentos, você cria um range que conta a partir de um ponto de início e vai até, mas não inclui, um ponto de parada que você fornecer:

range(1, 7)

Aqui, você criou um range de 1 a 6. Novamente, você pode usar list() para ver os elementos individuais do range.

Contar de um ponto de início até um ponto de parada dando um passo

Quando você chama range() com três argumentos, você cria um range que conta a partir de um ponto de início, vai até, mas não inclui, um ponto de parada, dando um passo que você especificar:

range(1, 20, 2)

Aqui, você criou um range de 1 a 19, contando de dois em dois. Como antes, você pode usar list() para visualizar os elementos individuais do range.

Usar a função range() do Python para criar ranges específicos

O range() do Python é altamente flexível e pode ser usado para criar ranges específicos. Além das três formas básicas que você viu anteriormente, você pode fazer o seguinte:

Lidar com Ranges Sobre Números Negativos

range(-10, -100, -30)

Neste exemplo, você criou um range decrescente de -10 a -100, contando de -30 em -30. Novamente, você pode usar list() para ver os elementos individuais do range.

Trabalhar com um Range Vazio

range(0) # range(0, 0)

Aqui, você criou um range vazio. Isso pode ser útil em algumas situações em que você precisa representar uma sequência vazia de números.

Contar Retrocedendo com Passos Negativos

range(10, 0, -1)

Neste exemplo, você criou um range que conta de 10 a 1, em ordem decrescente. Mais uma vez, você pode usar list() para visualizar os valores do range.

Percorrer Ranges ou Usar uma Alternativa

Repetir uma Operação

Em muitos casos, você pode usar um range para repetir uma determinada operação várias vezes. Por exemplo:

for _ in range(5):
print("Hello, world!")

Este loop prints “Hello, world!” cinco vezes. O uso de um _ como uma variável temporária é uma convenção em Python quando você não precisa do valor real do range.

Percorrer Diretamente o Iterador

for i in range(5):
print(i)

Aqui, o loop percorre cada valor em um range de 0 a 4 e imprime o valor atual. Isso é útil sempre que você precisa de acesso aos valores individuais de um range.

Usar a função enumerate() para criar índices

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(index, fruit)

O loop anterior usa a função enumerate() para criar índices para cada elemento em uma lista. Isso é útil quando você precisa acessar elementos e seus índices ao mesmo tempo.

Usar a função zip() para iteração paralela

names = ["Alice", "Bob", "Charlie"]
ages = [20, 30, 40]
for name, age in zip(names, ages):
print(name, age)

O loop acima usa a função zip() para iterar paralelamente sobre duas listas, names e ages. A cada iteração, ele imprime um nome e uma idade correspondente. Isso é útil quando você precisa acessar valores de listas em paralelo.

Explorar Outras Características e Usos de Ranges

Acessar Números Individuais de um Range

r = range(10, 20, 2)
print(r[0]) # 10
print(r[1]) # 12
print(r[-1]) # 18

Neste exemplo, você acessa números individuais de um range usando indexação, assim como faria com uma lista.

Criar Subranges com Slices

r = range(10, 100, 10)
subrange = r[2:5]
print(list(subrange)) # [30, 40, 50]

Neste exemplo, você cria um subrange de um range maior usando a sintaxe de slice. O subrange consiste nos elementos do índice 2 ao índice 4 do range original.

Verificar se um Número é Membro de um Range

r = range(1, 10)
print(5 in r) # True
print(20 in r) # False

Aqui, você verifica se um número é membro de um range usando o operador in. Ele retorna True se o número estiver no range e False caso contrário.

Calcular o Número de Elementos em um Range

r = range(5, 25, 5)
print(len(r)) # 4

Neste exemplo, você usa a função len() para calcular o número de elementos em um range. Ele retorna o tamanho do range.

Inverter um Range

r = range(10, 0, -1)
reversed_r = reversed(r)
print(list(reversed_r)) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Neste exemplo, você inverte um range usando a função reversed() e obtém uma lista dos elementos invertidos.

Criar um Range Usando Parâmetros Similares a Números Inteiros

start = 5
stop = 25
step = 5
r = range(start, stop, step)
print(list(r)) # [5, 10, 15, 20]

Aqui, você usa variáveis semelhantes a números inteiros para criar um range.

Conclusão

O range() do Python é uma forma poderosa de representar ranges numéricos. Ele oferece uma maneira concisa e eficiente de criar e trabalhar com sequências de números consecutivos ou espaçados. No entanto, é importante lembrar que existem outras alternativas disponíveis, dependendo do seu caso de uso específico. Você pode continuar explorando e aprendendo mais sobre o range() e suas aplicações em seu próprio código Python.

Recursos Adicionais