Ranges
Compartilhado por um usuário do Flashcards.gg · gerado com IA · Denunciar este conjunto
Conceitos fundamentais sobre o uso de ranges e sequências na programação, voltado para iniciantes.
Toque no cartão para virar
Cartões · 50
- O que é um range na programação?
- Sequência ordenada de valores entre limites definidos. Caso de uso: controlar repetições em laços for sem criar listas inteiras na memória.
- range(n) com um único argumento em Python
- Gera números de 0 até n - 1 com passo 1. Caso de uso: range(5) para executar um bloco exatamente 5 vezes (índices 0 a 4).
- range(início, fim)
- Gera números do valor inicial até fim - 1. Caso de uso: range(1, 11) para iterar pelos números de 1 a 10 ao processar páginas de um relatório.
- range(início, fim, passo)
- Gera valores do início ao fim com incremento personalizado. Caso de uso: range(0, 100, 10) para coletar dados a cada 10 unidades de medida.
- Por que o valor final do range é exclusivo?
- Garante consistência com indexação baseada em zero e o tamanho da lista. Caso de uso: range(len(lista)) acessa todos os índices sem ultrapassar o limite.
- Passo negativo em range
- Gera uma sequência decrescente quando início é maior que fim. Caso de uso: range(10, 0, -1) para criar uma contagem regressiva de lançamento.
- Consumo de memória do range em Python 3
- Usa memória constante O(1), gerando itens sob demanda. Caso de uso: range(10000000) ocupa o mesmo espaço que range(5), evitando estouro de RAM.
- Verificar se um valor está dentro do range
- Usa o operador in com verificação matemática imediata O(1). Caso de uso: 25 in range(1, 50) para validar se a idade informada está permitida.
- Acesso por índice em um range
- Permite recuperar elementos por posição sem convertê-lo em lista. Caso de uso: r = range(10, 100); r[3] retorna o quarto número da série instantaneamente.
- Tamanho de um range com len()
- Calcula a quantidade exata de elementos gerados. Caso de uso: len(range(5, 50, 5)) informa quantos lotes de 5 itens serão processados.
- Fatiamento (slicing) de range
- Cria um novo range a partir de outro usando colchetes. Caso de uso: range(0, 100)[10:20] extrai uma fatia específica de índices para processamento.
- Converter range para lista
- Materializa todos os números em memória usando list(range(...)). Caso de uso: list(range(1, 6)) cria [1, 2, 3, 4, 5] para salvar como array em banco de dados.
- range vazio
- Ocorre quando a condição de término já começa satisfeita. Caso de uso: range(10, 5) com passo positivo não executa o laço, evitando erros em tempo de execução.
- Iterar sobre índices de uma lista com range
- Usa for i in range(len(lista)) para obter a posição atual. Caso de uso: atualizar elementos da lista no próprio local durante a iteração.
- range versus enumerate
- enumerate fornece índice e elemento; range dá apenas a sequência. Caso de uso: usar enumerate quando precisar ler o valor, e range para passos customizados.
- range com números flutuantes
- O range nativo aceita apenas inteiros; para floats usa-se numpy.arange. Caso de uso: np.arange(0.0, 1.0, 0.1) para simulações científicas de tempo.
- Operador .. em Ruby
- Cria um range inclusivo abrangendo início e fim. Caso de uso: (1..5) inclui o 5 ao verificar se uma nota escolar está dentro da faixa regular.
- Operador ... em Ruby
- Cria um range exclusivo, descartando o último valor. Caso de uso: (1...5) para iterar apenas de 1 a 4 ao processar limites abertos de horários.
- Operador .. em Kotlin
- Cria progressões e intervalos fechados. Caso de uso: 1..10 inclui 1 e 10 para validar dias úteis de um ciclo de trabalho.
- Função until em Kotlin
- Cria intervalos fechados no início e abertos no fim. Caso de uso: 0 until array.size para iterar com segurança sobre os elementos de um vetor.
- Palavra-chave downTo em Kotlin
- Gera sequências regressivas inclusivas. Caso de uso: 10 downTo 1 para atualizar temporizadores regressivos de notificações.
- Função step em Kotlin e Ruby
- Modifica o incremento de um intervalo numérico existente. Caso de uso: (0..100).step(5) para exibir marcadores em uma barra de progresso visual.
- Operador ..= em Rust
- Cria uma faixa inclusiva contendo início e fim. Caso de uso: 1..=100 para checar se uma porcentagem válida foi informada pelo usuário.
- Operador .. em Rust
- Cria um intervalo aberto à direita. Caso de uso: for i in 0..items.len() para percorrer posições de memória sem risco de panic por overflow.
- Array.from() com length em JavaScript
- Forma comum de simular range no JS moderno. Caso de uso: Array.from({length: 5}, (_, i) => i) para renderizar 5 botões de paginação na interface.
- IntStream.range() em Java
- Gera fluxo sequencial de inteiros com limite superior exclusivo. Caso de uso: IntStream.range(0, 10) para processar itens em paralelo com streams.
- IntStream.rangeClosed() em Java
- Gera fluxo sequencial de inteiros com limite superior incluso. Caso de uso: IntStream.rangeClosed(1, 12) para iterar pelos meses do ano.
- Enumerable.Range() em C#
- Gera sequência de inteiros a partir de valor inicial e quantidade. Caso de uso: Enumerable.Range(100, 5) gera de 100 a 104 para emitir números de senhas.
- Operador de índice e intervalo (..) no C# 8+
- Fatia coleções definindo limites de índices. Caso de uso: texto[1..^1] para remover as aspas iniciais e finais de uma string.
- Função seq em bash
- Gera sequências numéricas no terminal Linux. Caso de uso: for i in $(seq 1 5); do touch log$i.txt; done para criar 5 arquivos de log rapidamente.
- Expansão de chaves {início..fim} no Bash
- Recurso nativo da shell para gerar faixas sem invocar programas externos. Caso de uso: echo {A..Z} para listar todas as letras do alfabeto em scripts.
- Operador BETWEEN em SQL
- Verifica se um campo numérico ou data está dentro de faixa inclusiva. Caso de uso: WHERE data BETWEEN '2023-01-01' AND '2023-12-31' para filtrar vendas anuais.
- Tipo daterange no PostgreSQL
- Armazena intervalos de tempo como um tipo nativo de dados. Caso de uso: daterange(inicio, fim) para reservar quartos e evitar reservas sobrepostas.
- Operador de contenção @> em PostgreSQL
- Verifica se um range contém um elemento ou outro range. Caso de uso: periodo @> '2023-06-15'::date para saber se a data está contida na locação.
- Operador de sobreposição && em PostgreSQL
- Checa se dois ranges compartilham valores em comum. Caso de uso: horario_a && horario_b para detectar conflitos de agendamento de consultas.
- Range numérico em validação de schema (JSON Schema)
- Usa minimum e maximum para restringir valores permitidos. Caso de uso: validar se a pontuação enviada por API fica entre 0 e 100.
- Range no Excel e Planilhas (ex: A1:C10)
- Referência retangular a um grupo contíguo de células. Caso de uso: SOMA(B2:B30) para totalizar as receitas da coluna B.
- Input do tipo range em formulários HTML
- Elemento <input type='range'> que renderiza um seletor deslizante. Caso de uso: permitir ajuste visual de volume de áudio ou nível de brilho.
- Atributos min, max e step no <input type='range'>
- Definem os limites inferior, superior e o salto do controle deslizante. Caso de uso: min='0' max='100' step='5' para escolher preços arredondados.
- Cabeçalho HTTP Range
- Permite ao cliente solicitar apenas partes específicas de um arquivo. Caso de uso: Range: bytes=0-1024 para download pausável e streaming de vídeo.
- Status HTTP 206 Partial Content
- Resposta do servidor indicando envio bem-sucedido do intervalo pedido. Caso de uso: carregar trechos sob demanda em tocadores de podcast.
- Status HTTP 416 Range Not Satisfiable
- Erro indicando que o byte range solicitado está além do tamanho do recurso. Caso de uso: alertar o cliente quando pede bytes de arquivo inexistente.
- Range em CSS Media Queries (Level 4)
- Sintaxe moderna para limites de viewport como (width <= 600px). Caso de uso: aplicar estilos responsivos para celulares sem min-width redundante.
- Range de caracteres em Expressões Regulares
- Define conjunto contínuo de caracteres dentro de colchetes. Caso de uso: [a-z0-9] para validar usernames com apenas letras minúsculas e dígitos.
- Range em endereços de rede (CIDR)
- Faixa contígua de IPs definidos por máscara de sub-rede. Caso de uso: 192.168.1.0/24 representa o range de 192.168.1.1 até 192.168.1.254.
- Range sem limites (unbounded / open range)
- Intervalo com início ou fim omitido, estendendo-se ao infinito. Caso de uso: lista[2:] em Python para selecionar itens da terceira posição até o final.
- Range com passo zero
- Operação inválida que dispara erro (como ValueError em Python). Caso de uso: validar entradas dinâmicas de passo para não travar loops infinitos.
- Range circular / modular
- Sequência que retorna ao início após alcançar o limite máximo. Caso de uso: usar operador módulo (x % 12) para simular ciclo de horas em relógios.
- Range de datas em Python com timedelta
- Criação de sequência de dias iterando com datetime e timedelta. Caso de uso: gerar relatórios diários para todos os dias do mês atual.
- Gerador customizado para simular range de floats
- Função com yield que incrementa ponto flutuante com segurança. Caso de uso: gerar coordenadas de interpolação gráfica suave entre 0.0 e 1.0.