Verification of bank number using modulus 11

Morten Engvoldsen mortenengv at gmail.com
Tue Feb 19 23:59:34 CET 2013


Hi Team,
Thanks for the code.
 I have altered the code with below code, it is able to validate the number
now,

def calc_checkdigit(isbn):
isbn = isbn.replace(".", "")
check_digit = int(isbn[-1])
isbn = isbn[:-1]
if len(isbn) != 10:
  return False
weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]
result = sum(w * (int(x)) for w, x in zip(weights, isbn))
remainder = result % 11
if remainder == 0:
   check = 0
else:
   check = 11 - remainder
return check == check_digit

calc_checkdigit(""8601.11.**17947"")


But can you tell me how could i implement below

"If digits 5 and 6 of the account number are zeros, the check digit is
calculated on the 7, 8, 9 and 10th digit of the account number."

which means if account number is "8601.00.**17947" then check digit is
calculate as

 result = (1*5) + (7*4)+ (9*3)+(4*2)

remainder = result % 11

check_digit = 11 - remainder

Can you tell me how can i implement this ?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130219/4b4d2b3f/attachment.html>


More information about the Python-list mailing list