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