O básico que ninguém ensina sobre sequências numéricas
Quando alguém pede para escreva os números inteiros de até 2, a primeira reação pode ser subestimar o exercício. Parece simples demais, quase redundante. Mas é exatamente nessas solicitações óbvias que residem os erros mais frequentes em processos de digitação, auditoria de dados e validação de entrada em sistemas legados.
Por que esse tipo de tarefa importa na prática
Na minha experiência mantendo pipelines de ETL para operações financeiras, já vi múltiplas vezes um Junior Developer ignorar a especificação literal porque "era óbvio". O resultado? Registros com valores quebrados onde só se esperavam inteiros, ou sequências iniciando em 1 quando o protocolo exigia começar em 0. A ambiguidade entre "até 2" (inclusivo ou exclusivo?) e "inteiros" (positivos? negativos? zero incluído?) gera bugs silenciosos que só aparecem em produção. A versão correta e mais conservadora — aquela que evita perda de dados — seria listar: ..., -2, -1, 0, 1, 2. Em contextos de programação Python, por exemplo, um `range(3)` produz `[0, 1, 2]`. Em C, um laço `for (int i = 0; i <= 2; i++)` faz o mesmo. A diferença está no limite superior: `<=` inclui o 2, `
` exclui.
👉 Clique no botão abaixo para saber mais sobre o assunto!
O problema que ninguém conta nos tutoriais
Encontrei uma situação específica num sistema de conciliação bancária onde o contrato de integração pedia "inteiros até 2" para um campo de código de modalidade. O fornecedor interpretou como `{0, 1, 2}`, mas a documentação interna do banco usava indexação base-1, então os códigos válidos eram `{1, 2}`. O 0 era reservado para "inválido". Como não havia validação no lado do cliente, transações com código 0 eram silenciosamente rejeitadas pelo core bancário, gerando milhares de registros órfãos por semana. A solução foi adicionar uma camada de mapeamento com dicionário `{0: NULL, 1: 'A', 2: 'B'}` e logging explícito de rejeições.
Armadilhas comuns ao lidar com contagens pequenas
O viés de confirmação é o maior inimigo aqui. Quando o intervalo é tão pequeno que cabe num post-it, tendemos a pular a verificação. Porém, é exatamente nesse tipo de condição que edge cases surgem: off-by-one em loops, confusão entre conjuntos finitos e infinitos, e a suposição errada de que "inteiro" significa "natural positivo". Em matemática, inteiros incluem negativos; em muitos domínios de negócio, não. Sempre esclareça o domínio antes de codificar. Se você precisa apenas visualizar a sequência para fins didáticos, a lista completa dos inteiros menores ou iguais a 2 é infinita para a esquerda. Na prática, contudo, limites inferiores são impostos pelo tipo de dado: `int8` vai até -128, `int32` até -2 bilhões. Escolher o tipo errado pode truncar sequências expected sem erro de compilação — o pior cenário possível.