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