Überprüfen, ob eine ISBN-Nummer korrekt ist

Ich habe einige ISBN-Nummern erhalten, z.3-528-03851 (ungültig) ,3-528-16419-0 (gültig). Ich soll ein Programm schreiben, das prüft, ob die ISBN-Nummer gültig ist.

Hier ist mein Code:

def check(isbn):
    check_digit = int(isbn[-1])
    match = re.search(r'(\d)-(\d{3})-(\d{5})', isbn[:-1])

    if match:
        digits = match.group(1) + match.group(2) + match.group(3)
        result = 0

        for i, digit in enumerate(digits):
          result += (i + 1) * int(digit)

        return True if (result % 11) == check_digit else False

    return False

Ich habe einen regulären Ausdruck verwendet, um a) zu überprüfen, ob das Format gültig ist und b) die Ziffern in der ISBN-Zeichenfolge zu extrahieren. Obwohl es zu funktionieren scheint, bin ich als Python-Anfänger gespannt, wie ich meinen Code verbessern kann. Vorschläge

Antworten auf die Frage(16)

Ihre Antwort auf die Frage