Перевірка Луна для цифр ASCII
Перевірте синтетичний рядок із 2–64 цифр ASCII за контрольною сумою Луна.
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 == 0Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Проєкт
Збережіть початкові нулі та перевірте обидві парності довжини, відхиляючи пробіли й цифри поза ASCII без твердження про чинність рахунку.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
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 == 0Перевіряйте валідацію, не втрачаючи початкового тексту
Код валідації має два обов’язки, які легко сплутати: визначати допустимі дані й вирішувати, що вони означають. DigitTally — середовище програмування з ШІ для Windows, де можна обговорювати ці обов’язки на основі файлів коду проєкту. Надайте синтетичний приклад, очікуваний результат і код виклику, що обробляє відхилені дані, а потім попросіть модель вивчити поточну межу перевірки.
Приклад перевірки за алгоритмом Луна пропонує вузьке завдання для рядків цифр. Перед запитом на правку опишіть, як мають зберігатися початкові нулі та який набір символів приймає застосунок. Запитайте, як запропонована зміна розрізняє некоректний формат і невідповідність контрольній сумі. Розділення цих результатів допомагає перевірити не лише обчислення, а й пов’язаний код форми або імпорту.
Перевірте пропозицію на синтетичних даних різної довжини, зокрема із забороненими символами, та виконайте відповідні тести проєкту. Результат контрольної суми свідчить про це обчислення, а не про існування рахунку. DigitTally підключається до підтримуваних OpenAI-сумісних кінцевих точок або кінцевих точок Anthropic; налаштуйте облікові дані, де потрібно. Можна вибрати модель без обмежень, якщо сервіс її пропонує; правила постачальника, інструменти й місткість контексту визначає це підключення. Оцінюйте код за встановленим контрактом вхідних даних.
Питання щодо перевірки ідентифікаторів
Навіщо використовувати синтетичні ідентифікатори в розмові?
Вони можуть відтворювати форматування й поведінку контрольної суми без передавання реальних реквізитів рахунку. Вибирайте дані, що зберігають потрібну довжину й початкові нулі, та позначайте очікуваний результат, щоб помічник міг перевірити код на відомих випадках.
Чи слід спочатку перетворювати рядки цифр на числа?
З’ясуйте, чи не втратить перетворення потрібну застосунку інформацію, наприклад початкові нулі. Наведений контракт трактує вхідні дані як текст. Попросіть помічника зберегти цей контракт у валідації та в обробці помилок кодом виклику.
Що доводить успішна перевірка контрольної суми?
Лише те, що значення задовольняє реалізоване правило контрольної суми. Вона не підтверджує існування рахунку, володіння ним чи дозвіл на операції. Не включайте ці окремі вимоги застосунку до тверджень про цю ілюстративну процедуру валідації.
Для яких випадків парності потрібні тестові дані?
Додайте підтримувані непарні й парні довжини, заборонені символи та граничні довжини. Виконайте ці випадки після перегляду правки, щоб зміна порядку обходу непомітно не змістила позиції, які подвоюються.
DigitTally · Оновлено 2026-10-25