Prüfsummen
Oft ist die letzte Ziffer eines Zahlen-Codes eine Prüfsumme der vorhergehenden Ziffern. Damit kann z.B. festgestellt werden, wenn genau eine Ziffer falsch eingegeben wurde, oder die meisten Fälle von vertauschten Ziffern. In vielen Fällen wird eine «Art Quersumme» berechnet. Beispiele sind
- IBAN (Kontonummern)
- Kreditkartennummern
- Referenznummern auf Einzahlungsscheinen
- Bar-Codes (z.B. EAN-Codes im Supermarkt).
- ISBN (Büchernummern)
Sie haben bestimmt ein Buch mit 13-stelliger ISBN-Nummer und/oder einen Artikel mit einem EAN-Code bei sich.
Überprüfen Sie für diese von Hand die Prüfsumme (letzte Ziffer). Finden Sie dazu eine Anleitung. Die Berechnungsmethode ist für beide gleich. Für 10-stellige ISBN-Nummern (vor dem Jahr 2006) ist die Prüfsummenberechnung eine andere.
Optinale Knacknuss
Folgender Code überprüft, ob ein EAN-Code eine korrekte Prüfziffer hat:
- ean.py
# EAN-Code Überprüfen code = "7613312143490" if len(code)!=13: print("Falscher Code, er muss 13 Ziffern haben!") exit() summe = 0 for i in range(12): ziffer = int(code[i]) # Aktuelle Ziffer an Stelle i (von 0 bis 11) if i%2==0: summe = summe + ziffer else: summe = summe + 3*ziffer # Prüfziffer aus der Summe berechnen pruefziffer = (10 - summe%10) % 10 if int(code[12]) == pruefziffer: print("Code ist OK!") else: print("Code ist Fehlerhaft!")
Passen Sie obigen Code so an, dass 10-stellige ISBN-Nummern damit überprüft werden können (wobei es diese seit 2006 nicht mehr gibt).
Damit die Nummern einfacher eingeben werden können (mit Minuszeichen) können Sie folgendes verwenden:
isbn = "3-88229-192-3".replace("-","") # Ersetzt alle Minuszeichen durch nichts, d.h. entfernt diese print(isbn) # Gibt 3882291923 aus