Diário Code - Uma xícara de café e um bule em cima de uma mesa.

Diário Code

Aprenda Python, JavaScript e PHP

Como funciona o range ( ) em Python

5 visualizações |

Uma contagem de 1 a 9 no fundo com o título na frente: Como funciona o range em Python

Veja o código abaixo:

for x in range(0, 10, 1):
 print(f"{x}")

O código acima irá exibir na tela a sequência de números de 0 a 9, cada número numa linha. Mas você sabe o que realmente aconteceu nesse código?

O que é range ( ) ?

Range em é um tipo de dados embutido do Python assim como list e tuple. Portanto, range é uma classe.

Se você não sabe o que é uma classe, leia o artigo Entenda o básico da Programação Orientada a Objetos (nova aba) e depois retorne aqui.

Para que serve essa classe? A classe range permite criar um intervalo de números inteiros, com ponto de partida, fim e incremento.

Sendo uma classe, ela tem um construtor. No caso de range, a função construtora pode receber 3 argumentos, que estão presentes no código acima.

E quais são os 3 argumentos para o construtor de range? Os 3 argumentos são os seguintes, em ordem:

Argumento 1: start (obrigatório) - o valor inicial do intervalo, o número do qual você irá começar a contagem.

Argumento 2: end (obrigatório) - o valor final do intervalo, o número do qual você irá finalizar a contagem.

Argumento 3: step (opcional) - o valor do incremento do intervalo, ou seja, de quanto em quanto deverá ser feita a contagem.

Também, por ser uma classe, ele possui métodos e propriedades. Experimente o código abaixo:

print(range(0, 10, 1).start)

Esse código retornará 0, porque este é o valor da propriedade start da classe range.

Uma outra particularidade importante que você precisa lembrar é que o tipo range é iterável. É isso que torna esse tipo tão útil.

.

Iterável é o objeto cujos valores podem ser acessados e manipulados através de um loop.

Com essas informações em mente, você conseguirá entender melhor como manipular um objeto do tipo range.

Como manipular um objeto do tipo range ( )

Como já foi dito, um objeto do tipo range pode ser utilizado em loops. O exemplo inicial deste artigo demonstrou isso. Mas, agora que você entende melhor o que é o range, eu posso mostrar a você outra forma de utilizá-lo. Veja o código abaixo:

# "intervalo" é um objeto do tipo "range"
intervalo:range = range(0, 10, 1)

# Variável do tipo range:
print(f"Intervalo do tipo range: {intervalo}")
print(f"Início do intervalo:     {intervalo.start}")
print(f"Fim do intervalo:        {intervalo.stop}")
print(f"Incremento do intervalo: {intervalo.step}")
print(f"Quantidade de elementos: {intervalo.__len__()}")
print(f"Índice do valor 5:       {intervalo.index(5)}")
print(f"Qtd de valores 2:        {intervalo.count(2)}")

No exemplo acima, foi declarada uma variável chamada intervalo usando o tipo range. A partir disso, fica mais fácil e mais organizado manipular o intervalo de 0 a 9.

Nas linhas seguintes, acessamos as propriedades start, stop e step do objeto intervalo para obter o valor de início, fim e o incremento do objeto, respectivamente.

Veja também que executamos o método __len__ ( ) para obter a quantidade de elementos do intervalo. Também foram utilizados os métodos index ( ) e count ( ).

O que esse exemplo ensina para você? Isso ensina que você pode declarar uma variável do tipo range para manipular um intervalo.

Agora, veja esse outro exemplo que é continuação do código anterior. Por isso, caso você queira testar o código abaixo, não se esqueça de copiar também o anterior.

Continuação . . . Convertendo o objeto range:

# Converte range em list
intervaloEmLista:list = list(intervalo)

# Obtém os valores de range:
print(f"Lista de valores:        {intervaloEmLista}")

O exemplo acima mostra que é possível converter um objeto do tipo range para o tipo list! Isso é muito interessante e extremamente útil. Ao fazer essa conversão, você pode exibir os valores do intervalo na tela e realizar outras operações exclusivas do tipo list.

Conclusão

Entender essa versatibilidade do tipo range é fundamental para trabalhar com intervalos numéricos. Com esse novo conhecimento em mente, com certeza você melhorará seu código e será capaz de criar programas mais fáceis de operar e corrigir.

Espero que isso tenha aprofundado seu conhecimento em programação de alguma forma. Quanto mais específico o seu conhecimento sobre a linguagem que você trabalha, mais confiante você ficará. E isso será essencial em qualquer projeto. d :

Aprenda mais com outros artigos relacionados