Verificação Luhn de dígitos ASCII
Valide uma sequência sintética de 2 a 64 dígitos ASCII com a soma de Luhn.
def luhn_valid(text):
if type(text) is not str or not 2 <= len(text) <= 64:
raise ValueError("luhn.length")
if any(char < "0" or char > "9" for char in text):
raise ValueError("luhn.alphabet")
total = 0
for index, char in enumerate(reversed(text)):
digit = ord(char) - ord("0")
if index % 2:
digit *= 2
if digit > 9:
digit -= 9
total += digit
return total % 10 == 0Modelos
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
Projeto
Preserve zeros iniciais e teste comprimentos pares e ímpares, rejeitando espaços e dígitos não ASCII sem afirmar validade de conta.
Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
def luhn_valid(text):
if type(text) is not str or not 2 <= len(text) <= 64:
raise ValueError("luhn.length")
if any(char < "0" or char > "9" for char in text):
raise ValueError("luhn.alphabet")
total = 0
for index, char in enumerate(reversed(text)):
digit = ord(char) - ord("0")
if index % 2:
digit *= 2
if digit > 9:
digit -= 9
total += digit
return total % 10 == 0Revise a validação sem perder o texto original
O código de validação tem duas responsabilidades fáceis de confundir: definir entradas aceitáveis e decidir o significado dessas entradas. DigitTally é um ambiente de programação com IA para Windows em que você pode discutir essas responsabilidades com base nos arquivos-fonte do projeto. Leve um exemplo sintético, seu resultado esperado e o chamador que trata entradas rejeitadas, depois peça ao modelo que inspecione o limite atual.
O exemplo de verificação Luhn oferece uma tarefa focada em strings de dígitos. Descreva como os zeros à esquerda devem ser preservados e qual conjunto de caracteres a aplicação aceita antes de pedir uma edição. Pergunte como a alteração proposta distingue um valor malformado de um que falha no checksum. Separar esses resultados ajuda a revisar o formulário ou o código de importação ao redor, além do cálculo.
Confira a proposta com casos sintéticos de comprimentos diferentes, incluindo caracteres proibidos, e execute os testes pertinentes do projeto. Um resultado de checksum é evidência sobre esse cálculo, não de que uma conta existe. DigitTally se conecta a endpoints suportados compatíveis com OpenAI ou da Anthropic; configure credenciais quando exigidas. Você pode escolher um modelo sem restrições se o serviço o oferecer, com regras do provedor, ferramentas e capacidade de contexto determinadas por essa conexão. Julgue o código pelo contrato de entrada estabelecido.
Perguntas sobre validação de identificadores
Por que usar identificadores sintéticos na conversa?
Eles podem reproduzir o comportamento de formatação e checksum sem compartilhar dados reais de contas. Escolha casos que preservem o comprimento pertinente e os zeros à esquerda e indique o resultado esperado para que o assistente examine o código diante de casos conhecidos.
Strings de dígitos devem ser convertidas em números primeiro?
Revise se a conversão descartaria informações necessárias à aplicação, como zeros à esquerda. O contrato ilustrado trata a entrada como texto. Peça ao assistente que preserve esse contrato durante a validação e no tratamento de erros do chamador.
O que um checksum aprovado comprova?
Comprova apenas que o valor satisfaz a regra de checksum implementada. Não verifica a existência da conta, sua titularidade ou a permissão para realizar transações. Mantenha esses requisitos separados da aplicação fora das alegações sobre esta rotina ilustrativa de validação.
Quais casos de paridade precisam de testes?
Inclua comprimentos suportados pares e ímpares, junto com caracteres rejeitados e comprimentos limítrofes. Execute esses casos após revisar a edição proposta para que uma mudança na ordem de iteração não altere silenciosamente quais posições são duplicadas.
DigitTally · Atualizado 2026-10-25