Number validation issue

Morten Engvoldsen mortenengv at gmail.com
Fri Feb 22 10:09:22 EST 2013


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20130222/d1cf2091/attachment.html>


More information about the Python-list mailing list