Como criar uma sequência numérica de 0 a 100
Muita gente começa com sequencia numerica de 0 a 100 porque é o primeiro exercício que aparece em qualquer manual de programação. Acontece que, no dia a dia, a coisa mais comum não é escrever os números à mão — é gerar essa lista automaticamente num script, numa planilha ou direto no terminal.
O básico: o que é uma sequencia numerica de 0 a 100
É uma lista ordenada de inteiros, começando em zero e terminando em cem. Parece óbvio, mas já vi bastante projeto novo errar nisso por excesso de confiança. O erro típico é confundir o índice com o valor. Em Python, por exemplo, range(100) gera números de 0 a 99. Para chegar a 100 mesmo, você precisa passar 101 como parâmetro. Eu aprendi isso na pior forma, numa automação de relatório financeiro onde a equipe pedia uma contagem de 0 a 100 para marcar meses de um ano completo. O código original só ia até 99, então o mês de dezembro sempre caía fora. Perdi duas horas tentando debugar um problema que era, no fundo, um off-by-one em um loop simples.
Métodos práticos para gerar a sequência
A forma mais direta que eu uso hoje é em Python, claro, mas vou cobrir três cenários comuns. O primeiro é com range(), o segundo envolve gerar uma tabela em CSV, e o terceiro é para quem trabalha com SQL e precisa exportar linhas de uma vez. No Python, a chamada correta é:
lista = list(range(0, 101)) Isso cria uma lista com 101 elementos. Se você quiser economizar memória, pode usar o próprio objeto range sem converter para lista — isso funciona bem quando só precisa iterar, mas falha se for tentar calcular o comprimento depois em contextos que exigem uma sequência materializada.
Para CSV, eu costumo usar:
👉 Clique no botão abaixo para saber mais sobre o assunto!
import csv
with open('sequencia.csv', 'w', newline='') as f:
writer = csv.writer(f)
for n in range(101):
writer.writerow([n])
Isso gera um arquivo pequeno, mas legível. Eu já vi gente tentar salvar em Excel direto do Python sem biblioteca externa e perder tempo com arquivos corrompidos. A saída CSV queima em qualquer planilha.
SQL: alternativa rápida quando não dá para rodar código
Em bancos de dados, a sequência muitas vezes surge de tabelas temporárias. No PostgreSQL, por exemplo: SELECT generate_series(0, 100) AS numero;
Essa função já nasce para esse tipo de tarefa e evita ter que montar um loop manualmente. No MySQL, a sintaxe muda e, em versões antigas, você precisa criar uma tabela de números primeiro. Eu já passei vergonha num banco legado que usava MySQL 5.5 e não tinha CTE disponível — tive que criar uma tabela auxiliar com dados fixos para resolver.
Pegadinhas que ninguém conta
A primeira é a tal do off-by-one, que eu já mencionei. A segunda é mais sutil: ordem. Muita gente acha que vai listar em sequência crescente naturalmente, mas em alguns contextos — exportação para sistemas legados, processamento batch — a ordem esperada pode ser decrescente. Se o sistema downstream pede contagem regressiva, range(100, -1, -1) é o caminho. Outra limitação prática: se você estiver trabalhando em ambiente restrito, sem acesso a bibliotecas externas, a solução precisa ser ainda mais básica. Um loop while simples resolve, mas demora mais para escrever e é mais sujeito a erro. Eu prefiro manter uma versão limpa em range e só cair no while quando o deploy imports extras.
Quando NÃO usar essa sequência
Não adianta transformar tudo em sequência automática se o propósito for gerar IDs únicos ou códigos de produto. Sequência numérica crescente pura quebra segurança simples de adivinhação e também não escala bem quando há concorrentes ou partições distribuídas. Nesses casos, use UUIDs ou sequências com hash. É mais trabalho, mas evita dores de cabeça que aparecem só quando o sistema já está em produção. Se precisar apenas visualizar a sequência para conferência, uma chamada direta no terminal costuma bastar. Em Python: print(*range(101)). Em bash: seq 0 100. Pequenos, rápidos e sem depender de arquivos intermediários.
O importante é deixar claro desde o início o que a lista representa — se é índice, valor real, ou mero marcador — porque confundir esses três usos gera bugs silenciosos que aparecem só depois que o processo já rodou algumas vezes.