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のエンドポイントを、ベース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元の文字列を失わずに検証をレビューする
検証コードには、受け付ける入力を定義することと、その入力の意味を判断することという、混同しやすい2つの責任があります。DigitTallyは、プロジェクトのソースファイルを参照しながらこれらを検討できるWindows用AIコーディング作業環境です。人工的な例、その期待結果、拒否入力を処理する呼び出し元を示し、現状の境界をモデルに調べてもらいましょう。
Luhnチェックの例は、数字の文字列に絞った題材です。修正を依頼する前に、先頭のゼロをどう維持し、どの文字集合を受け付けるか説明してください。形式不正な値とチェックサム不一致を、提案された変更がどう区別するか尋ねましょう。結果を分けて扱うことで、計算だけでなく周辺のフォームやインポートコードもレビューしやすくなります。
許可しない文字も含め、長さの異なる人工的なテストデータで提案を確認し、関連するプロジェクトのテストを実行します。チェックサムの結果はその計算の証拠であり、口座が存在する証拠ではありません。DigitTallyは対応するOpenAI互換またはAnthropicのエンドポイントに接続します。必要な場合は認証情報を設定してください。サービスが提供していれば制限なしとされるモデルを選べますが、プロバイダーのルール、ツール、コンテキスト容量はその接続先が定めます。確立した入力仕様でコードを判断しましょう。
識別子検証の作業に関する質問
会話に人工的な識別子を使うのはなぜですか?
実際の口座情報を共有せずに書式とチェックサムの動作を再現できます。関連する長さと先頭のゼロを保つテストデータを選び、期待結果を付記して、既知のケースに照らしてアシスタントがコードを調べられるようにしましょう。
数字の文字列は先に数値に変換すべきですか?
先頭のゼロなど、アプリケーションが必要とする情報を変換で失わないか確認してください。例示した仕様は入力を文字列として扱います。検証から呼び出し元のエラー処理まで、その仕様を保つようアシスタントに依頼しましょう。
チェックサムが一致すると何が分かりますか?
その値が実装されたチェックサムのルールを満たすことだけです。口座の存在、所有権、取引の権限は検証しません。これらの別個のアプリケーション要件を、例示した検証処理に関する主張に含めないでください。
偶奇についてどのケースのテストデータが必要ですか?
対応する奇数長と偶数長の両方に加え、拒否する文字と境界の長さを含めます。提案された修正をレビュー後、それらを実行し、走査順の変更が2倍にする位置を黙ってずらさないことを確認してください。
DigitTally · 更新日 2026-10-25