Pular para o conteúdo

Como usar o range reverso no Python?

[

Python reverse range(): Representa Intervalos Numéricos

por Geir Arne Hjelle 10 de Janeiro de 2024 básico python

Conteúdo

  • Construir Intervalos Numéricos
    • Contar a Partir do Zero
    • Contar do Início ao Fim
    • Contar do Início ao Fim com Passo
  • Usar a função range() do Python para criar Intervalos Específicos
    • Lidar com Intervalos de Números Negativos
    • Trabalhar com um Intervalo Vazio
    • Contar para Trás com Passos Negativos
  • Percorrer Intervalos ou Usar uma Alternativa
    • Repetir uma Operação
    • Percorrer diretamente o Iterador
    • Usar enumerate() para Criar Índices
    • Usar zip() para Iteração Paralela
  • Explorar Outras Características e Usos dos Intervalos
    • Acessar Números Individuais de um Intervalo
    • Criar Subintervalos com Fatias
    • Verificar se um Número é Membro de um Intervalo
    • Calcular o Número de Elementos em um Intervalo
    • Inverter um Intervalo
    • Criar um Intervalo Usando Parâmetros do tipo Inteiro
  • Conclusão

Um range é um objeto Python que representa um intervalo de números inteiros. Geralmente, os números são consecutivos, mas você também pode especificar que deseja separá-los. Você pode criar intervalos chamando a função range() com um, dois ou três argumentos, como os exemplos a seguir mostram:

Python

>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(1, 7))
[1, 2, 3, 4, 5, 6]
>>> list(range(1, 20, 2))
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

Em cada exemplo, você usa a função list() para listar explicitamente os elementos individuais de cada intervalo. Você estudará esses exemplos com mais detalhes em breve.

Neste tutorial, você aprenderá como:

  • Criar objetos range que representam intervalos de números inteiros consecutivos
  • Representar intervalos de números espaçados com incremento fixo
  • Decidir quando usar um range é uma boa solução para o seu caso de uso
  • Evitar o uso do range na maioria dos loops

Um range pode ser uma ferramenta poderosa em algumas situações. No entanto, ao longo deste tutorial, você também explorará alternativas que podem funcionar melhor em algumas situações. Você pode clicar no link abaixo para baixar o código que verá neste tutorial:

Construir Intervalos Numéricos

Em Python, a função range() é integrada. Isso significa que você sempre pode chamar a função range() sem fazer nenhuma preparação prévia. Chamar a função range() constrói um objeto de intervalo que você pode utilizar. Mais adiante, você verá exemplos práticos de como usar esses objetos de intervalo.

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

  1. Intervalos contando a partir do zero
  2. Intervalos de números consecutivos
  3. Intervalos com incremento

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

Contar a Partir do Zero

Quando você chama a função range() com um argumento, cria um intervalo que conta a partir do zero até, mas não incluindo, o número fornecido:

Python

>>> range(5)
range(0, 5)

Remover anúncios

Contar do Início ao Fim

Quando você chama a função range() com dois argumentos, cria um intervalo que conta do número de início até, mas não incluindo, o número de fim:

Python

>>> range(1, 7)
range(1, 7)

Aqui, você criou um intervalo de um a seis. Da mesma forma, você pode usar list() para ver os elementos individuais do intervalo.

Usar a função range() do Python para criar Intervalos Específicos

Em muitas situações, você não precisa apenas de um intervalo simples de números consecutivos. Às vezes, você precisa representar intervalos com incremento fixo ou até mesmo usar números negativos. A função range() do Python pode lidar com esses casos, como você verá a seguir.

Lidar com Intervalos de Números Negativos

A função range() pode lidar com números negativos em intervalos. Se você fornecer um número negativo como argumento de fim, o intervalo será construído para contar do valor de início até, mas não incluindo, o valor de fim:

Python

>>> list(range(-5, 0))
[-5, -4, -3, -2, -1]

Aqui, você criou um intervalo de -5 a -1.

Trabalhar com um Intervalo Vazio

Você pode usar a função range() para criar um intervalo vazio. Isso pode ser útil em algumas situações em que você precisa representar um intervalo sem elementos:

Python

>>> list(range(0))
[]

Aqui, você criou um intervalo vazio sem nenhum elemento.

Contar para Trás com Passos Negativos

Você também pode criar um intervalo que conte para trás, fornecendo um valor negativo como argumento de passo. O intervalo ainda contará do valor de início até, mas não incluindo, o valor de fim, mas fará isso contando para trás:

Python

>>> list(range(10, 0, -1))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

Aqui, você criou um intervalo que conta de 10 até 1 em passos negativos.

Remover anúncios

Percorrer Intervalos ou Usar uma Alternativa

Em muitos casos, você deseja percorrer os elementos de um intervalo. A função range() retorna um objeto de intervalo, mas você pode iterar diretamente sobre esse objeto de intervalo em um loop for. No entanto, existem também algumas alternativas que você pode considerar.

Repetir uma Operação

Uma forma simples de usar um intervalo em um loop é repetir uma operação para cada elemento do intervalo. Você pode usar a função range() para gerar o intervalo, e então iterar sobre ele usando um loop for:

Python

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

Este loop imprimirá os números de 0 a 4, um a cada linha.

Percorrer diretamente o Iterador

Alternativamente, você pode percorrer diretamente o iterador gerado pelo intervalo usando o loop for. Isso é possível porque o objeto de intervalo retornado pela função range() é um iterável:

Python

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

Este loop também imprimirá os números de 0 a 4.

Usar enumerate() para Criar Índices

Em vez de usar a função range(), você também pode usar a função enumerate() para gerar índices para os elementos de um iterável. A função enumerate() retorna um objeto de enumerador que atualiza automaticamente um índice a cada iteração:

Python

nomes = ["Alice", "Bob", "Carol"]
for i, nome in enumerate(nomes):
print(i, nome)

Este código imprimirá os números de 0 a 2, seguidos pelos nomes “Alice”, “Bob” e “Carol”. O uso da função enumerate() pode ser mais intuitivo em algumas situações em que você deseja iterar sobre os elementos de uma lista e obter tanto o índice quanto o valor do elemento em cada iteração.

Usar zip() para Iteração Paralela

Outra alternativa é usar a função zip() para iterar paralelamente sobre dois iteráveis. Você pode combinar a função range() com o zip() para obter os pares de índice-elemento:

Python

nomes = ["Alice", "Bob", "Carol"]
for i, nome in zip(range(len(nomes)), nomes):
print(i, nome)

Este código também imprimirá os números de 0 a 2, seguidos pelos nomes “Alice”, “Bob” e “Carol”. O uso do zip() pode ser útil quando você precisa iterar sobre vários iteráveis ao mesmo tempo.

Remover anúncios

Explorar Outras Características e Usos dos Intervalos

Até agora, você aprendeu sobre como criar intervalos e percorrê-los em loops. No entanto, os intervalos têm outras características úteis que você pode aproveitar em seus programas.

Acessar Números Individuais de um Intervalo

Os objetos de intervalo do Python são sequências, o que significa que você pode acessar os elementos individuais do intervalo da mesma forma que faz com uma lista ou tupla. Para acessar um elemento específico, você pode usar a indexação:

Python

r = range(10, 20, 2)
print(r[3])

Este código imprimirá o número 16, que é o quarto elemento do intervalo.

Criar Subintervalos com Fatias

Você também pode criar subintervalos de um intervalo usando fatias. As fatias permitem que você especifique um início, um fim e um passo, da mesma forma que a função range():

Python

r = range(10, 20, 2)
sub_range = r[1:4]
print(list(sub_range))

Este código imprimirá [12, 16], que são os elementos do índice 1 ao 3 do intervalo.

Verificar se um Número é Membro de um Intervalo

Existem várias maneiras de verificar se um número é um membro de um intervalo. Uma forma direta é verificar a existência usando o operador in:

Python

r = range(0, 10)
print(5 in r)

Este código imprimirá True se o número 5 estiver no intervalo e False caso contrário.

Calcular o Número de Elementos em um Intervalo

Você também pode calcular o número de elementos em um intervalo usando a função len():

Python

r = range(0, 10, 2)
print(len(r))

Este código imprimirá 5, pois há 5 elementos no intervalo.

Inverter um Intervalo

Se você precisar inverter um intervalo, pode usar a função reversed() junto com o range() para criar um intervalo reverso:

Python

r = range(0, 10)
reversed_range = reversed(r)
print(list(reversed_range))

Este código imprimirá [9, 8, 7, 6, 5, 4, 3, 2, 1, 0], que é o intervalo de 9 a 0 em ordem reversa.

Criar um Intervalo Usando Parâmetros do tipo Inteiro

Ao criar um intervalo, você pode usar parâmetros que se comportem como inteiros, como variáveis inteiras ou constantes numéricas:

Python

start = 1
end = 10
step = 2
r = range(start, end, step)
print(list(r))

Este código imprimirá [1, 3, 5, 7, 9], que é o intervalo de 1 a 10 em passos de 2.

Conclusão

Neste tutorial, você aprendeu a usar a função range() do Python para representar intervalos numéricos. Você viu como criar intervalos de números consecutivos, espaçados e até mesmo intervalos com números negativos. Além disso, você explorou diferentes formas de trabalhar com intervalos em loops e também conheceu alternativas ao uso do range() em alguns casos. Agora você está preparado para usar intervalos e explorar suas diferentes funcionalidades em seus programas em Python.