Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> python

Dominando a Função range() do Python: Do Básico ao Avançado

Dominando a Função range() do Python: Do Básico ao Avançado

O que é o range() do Python?

A função range() do Python é um gerador nativo que produz uma sequência de inteiros baseada em início, fim e passo opcional. Se o valor inicial for omitido, ele assume 0 por padrão, e a sequência incrementa de 1 até atingir o valor final (exclusivo). Por exemplo, range(5) produz 0, 1, 2, 3, 4. A função é indispensável ao iterar com loops for.

Neste tutorial você aprenderá:

Sintaxe

range(inicio, fim, passo)

Parâmetros

Valor de Retorno

Retorna um objeto range, que se comporta como uma sequência imutável de inteiros. Quando convertido para lista, exibe a sequência completa.

Histórico: range() vs xrange()

Introduzido no Python 3, range() substituiu o antigo xrange() usado no Python 2. As diferenças principais:

range()xrange()
Retorna uma sequência imutável de números.Retorna um objeto gerador.
Consome memória proporcional ao comprimento.Usa memória mínima; gera valores preguiçosamente.
Adequado para ranges pequenos a médios.Preferido para ranges grandes ou sequências infinitas.
Mais lento em ranges muito grandes devido à alocação.Mais rápido ao iterar sobre ranges grandes.

Usando range()

Exemplo básico que imprime números de 0 a 9:

for i in range(10):
    print(i, end=" ")

Saída: 0 1 2 3 4 5 6 7 8 9

Usando início e fim no range()

Especificar um valor inicial desloca a sequência:

for i in range(3, 10):
    print(i, end=" ")

Saída: 3 4 5 6 7 8 9

Usando início, fim e passo

Adicionando um passo, você controla o intervalo entre números:

for i in range(3, 10, 2):
    print(i, end=" ")

Saída: 3 5 7 9

Incrementando Valores com Passo Positivo

O passo padrão é 1, mas você pode especificar qualquer inteiro positivo:

for i in range(1, 30, 5):
    print(i, end=" ")

Saída: 1 6 11 16 21 26

Range Reverso: Decrementando com Passo Negativo

Fornecer um passo negativo cria uma sequência descendente:

for i in range(15, 5, -1):
    print(i, end=" ")

Saída: 15 14 13 12 11 10 9 8 7 6

Usando Números de Ponto Flutuante no range()

O range() nativo aceita apenas inteiros. Tentar passar um float levanta TypeError:

for i in range(10.5):
    print(i, end=" ")

Saída: TypeError: 'float' object cannot be interpreted as an integer

Usando for-loop com range()

Range é frequentemente combinado com len() para iterar sobre índices de lista:

lista = ['MySQL', 'MongoDB', 'PostgreSQL', 'Firebase']
for i in range(len(lista)):
    print(lista[i], end=" ")

Saída: MySQL MongoDB PostgreSQL Firebase

Usando range() como Lista

Converter um range para lista é simples:

print(list(range(10)))

Saída: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Usando Caracteres com range()

Embora range() funcione apenas com inteiros, você pode gerar sequências de alfabeto convertendo caracteres para seus pontos de código Unicode:

def obter_alfabeto(inicio, fim, passo):
    for c in range(ord(inicio.lower()), ord(fim.lower()), passo):
        yield chr(c)

print(list(obter_alfabeto("a", "h", 1)))

Saída: ['a', 'b', 'c', 'd', 'e', 'f', 'g']

Como Acessar Elementos do Range

Você pode recuperar valores via iteração, indexação ou conversão para lista:

Iteração

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

Saída: 0 1 2 3 4 5

Indexação

primeiro = range(5)[0]
print("Primeiro elemento:", primeiro)
segundo = range(5)[1]
print("Segundo elemento:", segundo)
ultimo = range(5)[-1]
print("Último elemento:", ultimo)

Saída: Primeiro: 0, Segundo: 1, Último: 4

Usando list()

print(list(range(10)))

Saída: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Exemplo: Obter Números Pares com range()

Para gerar números pares até 18:

for i in range(2, 20, 2):
    print(i, end=" ")

Saída: 2 4 6 8 10 12 14 16 18

Mesclando Duas Saídas de range()

Combinar dois objetos range pode ser feito com itertools.chain:

from itertools import chain
print("Mesclando dois ranges em um")
frange = chain(range(10), range(10, 20, 1))
for i in frange:
    print(i, end=" ")

Saída: 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 arange() do NumPy espelha range() mas suporta passos de ponto flutuante:

Sintaxe

arange(inicio, fim, passo)

Exemplo

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

Range de Ponto Flutuante com NumPy

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

Como a aritmética de ponto flutuante é binária, a saída às vezes mostra expansões decimais longas. Você pode arredondar os valores conforme necessário.

Resumo

python

  1. Dominando Argumentos de Funções em Python: Parâmetros Posicionais, Nomeados e Padrão
  2. Funções Lambda em Python: Guia Prático para Funções Anônimas
  3. Generators em Python: Iteração Eficiente e Casos de Uso Avançados
  4. Dominando Funções Lambda em Python: Exemplos Práticos e Boas Práticas
  5. Função abs() em Python: Calcular Valores Absolutos para Números e Complexos
  6. Função round() em Python Explicada com Exemplos Práticos
  7. Dominando a Função range() do Python: Do Básico ao Avançado
  8. Dominando a Função map() do Python: Sintaxe, Exemplos e Boas Práticas
  9. Dominando enumerate() do Python: Loop com Índices para Listas, Tuplas, Strings e Dicionários
  10. Python list.count(): Guia Especializado com Exemplos Práticos