Hatena::ブログ(Diary)

にのせき日記

2009-05-25

[]ISBN13をISBN10に変換

ISBNコード(とASIN)のまとめ

http://www.marusankakusikaku.jp/archives/2007/01/06-isbn-asin.html

これを参考にしてISBN13をISBN10に変換してみる。

・13桁のコードから上3桁とチェックデジット1桁を無視する

・ISBN10の計算方法でチェックデジットを計算して、付加する

isbn13 = '9784822234287'
isbn10 = isbn13[3:12]
check_digit = 0

for i in range(len(isbn10)):
    check_digit += int(isbn10[i]) * (10 - i)

check_digit = 11 - (check_digit % 11)

if check_digit == 10:
    check_digit = 'X'
elif check_digit == 11:
    check_digit = '0'
else:
    check_digit = str(check_digit)

isbn10 += check_digit
print isbn10

・実行結果

4822234282

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/ninoseki/20090525/1243236925
リンク元