primeiro commit com exercicios de Exercism realizados até esta data
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
def is_valid(isbn):
|
||||
# remove dashes
|
||||
isbn_no_dashes: str = "".join(isbn.split("-"))
|
||||
sum: int = 0
|
||||
# is isbn empty
|
||||
if isbn == "":
|
||||
return False
|
||||
# isbn length must be 10
|
||||
if len(isbn_no_dashes) < 10 or len(isbn_no_dashes) > 10:
|
||||
return False
|
||||
for index, digit in enumerate(isbn_no_dashes):
|
||||
# non-digit in isbn not as a checksum, return False
|
||||
if digit.isalpha() and index != 9:
|
||||
return False
|
||||
# if its a digit, ok
|
||||
if digit.isdigit():
|
||||
sum += int(digit) * (10 - index)
|
||||
# if check digit is not digit or not an 'X', return False
|
||||
if index == 9 and digit.isalpha() and digit.lower() != "x":
|
||||
return False
|
||||
# if check digit is the letter 'X' treat it as a 10
|
||||
if digit.isalpha() and index == 9 and digit.lower() == "x":
|
||||
sum += 10 * (10 - index)
|
||||
return False if sum % 11 else True
|
||||
Reference in New Issue
Block a user