ちなみにJANコードは、8桁13桁が有効として
ISBNは古い体系の10桁のものをチェックしています。
ISBNの新しい体系の13桁のものはJANコードと同じなのでJANコードの関数の方でチェックできます。
まずはJANコードの版はこんな感じです。
def check_jan_code(code): if code.isdigit() == False : return False if len(code) == 8 or len(code) == 13 : pass else : return False cd = code[-1] data = code[0:-1] total = 0 for i in range(0,len(data)): if i%2 ==0 : total = total + int(data[i]) else: total = total + int(data[i]) * 3 dig = total % 10 dig = 10 - dig
if dig == 10 :
dig = 0
if dig == int(cd) : return True else : return False
そしてISBNはこんな感じです。
def check_isbn(code): pattern = "^[0-9]{9}[0-9X]{1}$" if re.match(pattern,code) : pass else : return False cd = code[-1] data = code[0:-1] total = 0 w = 10 for i in range(0,len(data)): total = total + int(data[i]) * w w = w - 1 dig = total % 11 dig = 11 - dig if dig == 10 : dig = "X" if str(dig) == cd : return True else : return False
ちなみに、うまい棒チョコレート味のJANコードは49480764です。
※JANコードチェックでCDが0の時の処理が間違っていたので修正しました(2011/9/16)
0 件のコメント:
コメントを投稿