Ich wollte mal nachfragen ob der untenstehende Aufbau so richtig ist. Oder was man ändern soll / muß...
Ändern kann man bestimmt noch einiges aber es führt ja nicht nur 1 weg zum Ziel
Der Code checkt eine ISBN 10 oder 13 Nummer, was bisher auch einwandfrei funktioniert hat (zu mindestens bei mir )
Code: Alles auswählen
def get_clear_isbn(isbn):
isbn = str(isbn)
isbn = isbn.lower().replace('-', '').replace(' ', '')
if len(isbn) == 10:
if isbn[0:9].isdigit():
return isbn
else:
return 0
if len(isbn) == 13:
if isbn.isdigit():
return isbn
else:
return 0
else:
return 0
def check_isbn_10(isbn):
c_isbn = get_clear_isbn(isbn)
if not c_isbn == 0:
multi = 1
checksumme = 0
for number in c_isbn[::-1]:
if 'x' in number:
number = number.replace('x', '10')
summe = int(number) * multi
checksumme = checksumme + summe
multi += 1
valid = checksumme % 11
if not valid == 0:
return False
else:
return True
else:
return False
def check_isbn_13(isbn):
c_isbn = get_clear_isbn(isbn)
if not c_isbn == 0:
summe1 = 0
summe2 = 0
for number in c_isbn[0::2]:
summe1 = summe1 + int(number)
summe1 = summe1 * 1
for number in c_isbn[1::2]:
summe2 = summe2 + int(number)
summe2 = summe2 * 3
checksumme = summe1 + summe2
valid = checksumme % 10
if not valid == 0:
return False
else:
return True
else:
return False