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 :