Python Função range(): Float, List, For loop Exemplos
⚡ Resumo Inteligente
Python A função `range()` é uma função integrada que gera uma sequência imutável de números inteiros a partir de um valor inicial até um valor final (excluindo-o), utilizando um parâmetro opcional `step` para controlar o incremento.

O que é a Python Alcance?
Python range() é uma função integrada disponível com Python da Python (3.x), e fornece uma sequência de números com base no índice inicial e final fornecido. Caso o índice inicial não seja fornecido, o índice é considerado como 0, e ele incrementará o valor em 1 até o índice final.
Por exemplo, range(5) produzirá os valores 0, 1, 2, 3, 4. O Python O comando `range()` é muito útil e é usado principalmente quando você precisa iterar usando um array. para laço.
Sintaxe
A sintaxe da função range() é mostrada abaixo:
range(start, stop, step)
Parâmetros Técnicos
- Сomeçar: (opcional) O índice inicial é um número inteiro e, se não for fornecido, o valor padrão é 0.
- Pare: O índice de parada define o valor no qual a função de intervalo deve parar. É uma entrada obrigatória para a função de intervalo. O último valor será sempre 1 unidade menor que o valor de parada.
- degrau: (opcional) O valor do passo é o número pelo qual o próximo número no intervalo deve ser incrementado; por padrão, é 1.
Valor de retorno
O valor de retorno é uma sequência de números do índice inicial ao final fornecido.
Python range() Função e histórico
Python range() foi introduzido a partir de Python versão 3; antes disso, a função era xrange().
Tanto a função range() quanto a função xrange() são usadas para produzir uma sequência de números.
A seguir, as diferenças entre range() e xrange():
| alcance() | intervalo x() |
|---|---|
| O range() fornece a sequência de números e retorna uma lista de números. | A função xrange() fornece um objeto gerador que precisa ser executado em um loop for para obter os valores. |
| O range() retorna uma lista. | xrange() retorna um objeto gerador. |
| O método range() usa mais memória porque a lista retornada deve ser armazenada em comparação com xrange(). | Como xrange() retorna um objeto gerador, ele não fornece valores instantaneamente e precisa ser usado dentro de um loop for para obter os valores. |
| O uso de memória é maior, portanto a execução do código é lenta ao trabalhar com um conjunto de dados muito grande. | A execução do código é mais rápida usando xrange(). |
Usando intervalo()
Este exemplo mostra como imprimir os valores de 0 a 9 usando range().
O valor usado no intervalo é 10, portanto a saída é 0 1 2 3 4 5 6 7 8 9.
Como o valor inicial não foi fornecido, considera-se que ele é 0 e o último valor é 9. O último valor é sempre 1 a menos que o valor fornecido, ou seja, stop-1.
for i in range(10): print(i, end =" ")
Saída:
0 1 2 3 4 5 6 7 8 9
Usando start e stop em range()
No código, o valor inicial é 3 e o valor final é 10. Como o índice inicial é 3, a sequência de números começará em 3 e irá até o valor final. O último valor da sequência será 1 a menos que o valor final, ou seja, 10 - 1 = 9.
for i in range(3, 10): print(i, end =" ")
Saída:
3 4 5 6 7 8 9
Usando iniciar, parar e passo
O valor inicial é 3, portanto a sequência de números começará em 3. O valor final é 10, portanto a sequência de números terminará em (10-1), ou seja, 9. O incremento é 2, portanto cada valor na sequência será incrementado em 2. Se o valor do incremento não for fornecido, o valor padrão para o incremento será 1.
for i in range(3, 10, 2): print(i, end =" ")
Saída:
3 5 7 9
Até agora, vimos como a função range() retorna o valor incrementado para o valor de parada fornecido. Vamos agora tentar um exemplo para obter o valor decrementado no intervalo fornecido.
Incrementando os valores no intervalo usando um passo positivo
O parâmetro `step` na função `range()` pode ser usado para incrementar ou decrementar os valores. Por padrão, ele é um valor positivo, 1. Portanto, sempre retornará valores incrementados.
O valor do incremento deve ser positivo caso você queira valores incrementados como saída.
for i in range(1, 30, 5): print(i, end =" ")
Saída:
1 6 11 16 21 26
Reverse Intervalo: Decrementando os valores usando incrementos negativos
O parâmetro `step` com um valor negativo na função `range()` pode ser usado para obter valores decrementados. No exemplo abaixo, o valor de `step` é negativo, portanto, a saída será decrementada em relação ao valor de `range` fornecido.
for i in range(15, 5, -1): print(i, end =" ")
Saída:
15 14 13 12 11 10 9 8 7 6
O valor inicial é 15, o valor final é 5 e o incremento é um número negativo, ou seja, -1. Com as entradas acima, a função range() decrementará o valor a partir de 15 até atingir o valor final, mas aqui a diferença é que o último valor será valor final + 1.
Usando números flutuantes em Python alcance()
Vamos agora trabalhar no range() usando números de ponto flutuante.
Exemplo:
for i in range(10.5): print(i, end =" ")
No exemplo acima, usamos o valor de parada 10.5.
A saída é:
Traceback (most recent call last): File "python_range.py", line 1, in <module> for i in range(10.5): TypeError: 'float' object cannot be interpreted as an integer
Python Ocorre um erro porque a função range() não suporta números de ponto flutuante para início, parada e incremento.
Usando for-loop com Python alcance()
Neste exemplo, usaremos um array de números e veremos como iterar sobre ele dentro de um laço for usando a função range().
Exemplo:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase'] for i in range(len(arr_list)): print(arr_list[i], end =" ")
Saída:
MysqlMongodb PostgreSQL Firebase
No exemplo acima, usamos len(arr_list) como valor de parada. O laço for irá iterar até atingir o valor de parada, ou seja, o comprimento do array, que será 4, já que temos quatro itens em arr_list. O valor inicial será 0 e o incremento será 1, então os valores começarão em 0 e pararão em 3, ou seja, comprimento do array -1, o que significa 4 - 1 = 3.
Utilizar painéis de piso ResinDek em sua unidade de self-storage em vez de concreto oferece diversos benefícios: Python range() como uma lista
Neste exemplo veremos como utilizar a saída do intervalo como uma lista.
Exemplo:
print(list(range(10)))
Saída:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Você pode ver que a saída é um formato de lista. Não foi necessário fazer um loop no range() e usando o método list() poderíamos converter diretamente a saída do range para o formato de lista.
Usando caracteres em python range()
Até agora, usamos números inteiros em python range(). Também vimos que números de ponto flutuante não são suportados no intervalo python. Vamos tentar ver o resultado do que acontece quando usamos caracteres.
Exemplo:
for c in range ('z'):
print(c, end =" ")
Saída:
Traceback (most recent call last):
File "python_range.py", line 1, in <module>
for c in range ('z'):
TypeError: 'str' object cannot be interpreted as an integer
Ocorre um erro dizendo que uma string não pode ser interpretada como um número inteiro.
Para obter a lista dos alfabetos você pode personalizar o código e obter a saída desejada conforme mostrado abaixo:
Exemplo:
def get_alphabets(startletter, stopletter, step):
for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):
yield chr(c)
print(list(get_alphabets("a", "h", 1)))
Saída:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Como acessar os elementos do intervalo
Você pode usar um loop for para obter os valores do intervalo ou usar o índice para acessar os elementos do intervalo ().
Usando loop for
Exemplo:
for i in range(6):
print(i)
Saída:
0 1 2 3 4 5
Usando o índice
O índice é usado com intervalo para obter o valor disponível naquela posição. Se o valor do intervalo for 5, para obter o valor inicial, você pode usar range(5)[0] e o próximo valor range(5)[1] e assim por diante.
Exemplo:
startvalue = range(5)[0]
print("The first element in range is = ", startvalue)
secondvalue = range(5)[1]
print("The second element in range is = ", secondvalue)
lastvalue = range(5)[-1]
print("The first element in range is = ", lastvalue)
Saída:
The first element in range is = 0 The second element in range is = 1 The first element in range is = 4
Usando lista()
Este método imprimirá todos os elementos do range(). Usando list() ele retornará os elementos de range() em formato de lista.
Exemplo:
print(list(range(10)))
Saída:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Fornece a saída da lista para o intervalo fornecido.
Exemplo: Obtenha números pares usando range()
A função `range()` retorna a lista de números pares dentro do intervalo fornecido como entrada. Os parâmetros para `range()` são: `start` (2), `stop` (20) e `step` (2), portanto, os valores serão incrementados de 2 em 2, resultando em números pares até `stop-2`.
Exemplo:
for i in range(2, 20, 2): print(i, end =" ")
Saída:
2 4 6 8 10 12 14 16 18
Mesclando saídas de dois intervalos()
Neste exemplo, vamos concatenar duas funções range() com a ajuda da função chain() do módulo itertools.
Exemplo:
from itertools import chain print("Merging two range into one") frange =chain(range(10), range(10, 20, 1)) for i in frange: print(i, end=" ")
Saída:
Merging two range into one 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Usando range() com NumPy
O módulo NumPy possui uma função `arange()` que funciona e produz resultados semelhantes aos da função `range()`. A função `arange()` recebe os mesmos parâmetros que a função `range()`.
Sintaxe:
arange(start, stop, step)
Para trabalhar com NumPy, siga os passos indicados abaixo.
Etapa 1: Importar módulo NumPy
import numpy
Caso ocorra um erro durante a execução informando que o módulo numpy não foi encontrado, você precisa instalar o módulo conforme mostrado na etapa 2.
Etapa 2Instale o NumPy
pip install numpy
Etapa 3: Exemplo prático de arange() usando NumPy
import numpy as np for i in np.arange(10): print(i, end =" ")
Saída:
0 1 2 3 4 5 6 7 8 9
Números de ponto flutuante usando NumPy arange()
Não é possível obter a sequência de ponto flutuante usando a função `range()`, mas é possível usando a função `arange()` do NumPy.
Exemplo:
O intervalo desejado é de 0.5 a 1.5. O valor será incrementado em 0.2.
import numpy as np for i in np.arange(0.5, 1.5, 0.2): print(i, end =" ")
Saída:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
O resultado que obtemos é um pouco estranho; alguns dos números de ponto flutuante são exibidos com 16 casas decimais. Isso ocorre devido à complexidade de armazenar números decimais de ponto flutuante em formato binário. Você também pode arredondar os valores, se necessário, e limitá-los às casas decimais desejadas.
