Number validation issue

M

Morten Engvoldsen

Hi ,
I have wrote the below code to validate a number using modulus 10 and 11:

def is_valid_number(checknum, mod):
if mod == 10:
if not len(checknum) >= 2 and len(checknum) <=25:
return False
number = tuple(int(i) for i in reversed(str(checknum)) )
return (sum(int(num) * 2 for num in number[1::2]) % 10) == 0
elif mod == 11:
if not len(checknum)!= 11:
return False
weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2, 1]
return (sum(w * int(x) for w, x in zip(weights, checknum)) % 11) ==
0

is_valid_number("12345678217", 10)

The above code is able to validate 25 length number for modulus 10 , but
for modulus 11 i have done the validation only for 11 digit, Since for
modulus 11 the weight should be in
..............4,3,2,7,6, 5, 4, 3, 2, 7, 6, 5, 4, 3, 2, 1 in this format.

Could you please let me know how can i validate the 25 length number for
modulus 11 with weight ...............4,3,2,7,6, 5, 4, 3, 2, 7, 6, 5, 4, 3,
2, 1 in this format.

Regards,
Morten
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,577
Members
45,052
Latest member
LucyCarper

Latest Threads

Top