Validarea Luhn a cifrelor ASCII
Validează un șir sintetic de 2 până la 64 de cifre ASCII cu suma 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 == 0Modele
Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Proiect
Păstrează zerourile inițiale și testează lungimi pare și impare, respingând spațiile și cifrele non-ASCII fără a confirma validitatea unui cont.
Verifică înainte de aplicare
Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
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 == 0Revizuiește validarea fără să pierzi textul original
Codul de validare are două responsabilități ușor de confundat: definirea intrărilor acceptabile și stabilirea semnificației lor. DigitTally este un spațiu Windows de programare cu IA unde poți discuta aceste responsabilități raportându-te la fișierele sursă ale proiectului. Adu un exemplu sintetic, rezultatul așteptat și apelantul care tratează intrările respinse, apoi cere modelului să inspecteze limita actuală.
Exemplul de verificare Luhn oferă o sarcină concentrată pe șiruri de cifre. Descrie cum trebuie păstrate zerourile inițiale și ce set de caractere acceptă aplicația înainte să ceri o modificare. Întreabă cum distinge schimbarea propusă o valoare cu format incorect de una care nu trece verificarea sumei de control. Separarea acestor rezultate ajută la revizuirea formularului sau a codului de import înconjurător, precum și a calculului.
Verifică propunerea cu cazuri sintetice de lungimi diferite, inclusiv caractere interzise, și execută testele relevante ale proiectului. Rezultatul unei sume de control este o dovadă despre acel calcul, nu despre existența unui cont. DigitTally se conectează la endpointuri acceptate compatibile cu OpenAI sau Anthropic; configurează datele de autentificare unde sunt necesare. Poți alege un model fără restricții dacă serviciul îl oferă, regulile furnizorului, instrumentele și capacitatea contextului fiind determinate de acea conexiune. Evaluează codul după contractul de intrare stabilit.
Întrebări despre validarea identificatorilor
De ce să folosesc identificatori sintetici în conversație?
Ei pot reproduce comportamentul formatării și al sumei de control fără să divulge detalii despre conturi reale. Alege cazuri care păstrează lungimea relevantă și zerourile inițiale și marchează rezultatul așteptat, astfel încât asistentul să poată examina codul pe cazuri cunoscute.
Ar trebui convertite mai întâi șirurile de cifre în numere?
Verifică dacă conversia ar elimina informații necesare aplicației, precum zerourile inițiale. Contractul ilustrat tratează intrarea ca text. Cere asistentului să păstreze acel contract pe parcursul validării și în tratarea erorilor de către apelant.
Ce demonstrează trecerea verificării sumei de control?
Demonstrează doar că valoarea satisface regula sumei de control implementate. Nu verifică existența contului, proprietatea sau permisiunea de a efectua tranzacții. Păstrează aceste cerințe distincte ale aplicației în afara afirmațiilor despre rutina ilustrativă de validare.
Ce cazuri de paritate necesită teste?
Include lungimi acceptate atât impare, cât și pare, alături de caractere respinse și lungimi de limită. Execută acele cazuri după revizuirea modificării propuse, pentru ca schimbarea ordinii de iterare să nu deplaseze tacit pozițiile dublate.
DigitTally · Actualizat 2026-10-25