ISBN-13をISBN-10(ASIN)に変換

# -*- coding: utf-8 -*-

def isbn10_calc_checkdigit(digits):
    digit = 0
    for i, d in enumerate(digits):
        digit += int(d) * (10 - i)
    d = (11 - (digit % 11)) % 11
    return (d == 10) and 'X' or str(d)

def isbn13_to_10(isbn13):
    isbn13 = isbn13.replace("-", "")
    if len(isbn13) == 13 and isbn13.startswith("978"):
        isbn = isbn13[3:-1]
        return isbn + isbn10_calc_checkdigit(isbn)
    else:
        return isbn13