Re: Number validation issue

Discussion in 'Python' started by Morten Engvoldsen, Feb 22, 2013.

  1. Hi,
    Just to clear the confusion: i am talking about below part of my code:

    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

    for which i am looking for solution that it should validate the 'n' length
    of number with weight ...............4,3,2,7,6, 5, 4, 3, 2, 7, 6, 5, 4,
    3,2, 1 in this format from left to right.

    Thanks in advance again..

    On Fri, Feb 22, 2013 at 5:32 PM, Morten Engvoldsen <>wrote:

    > Hi,
    > Thanks for your reply.
    >
    > Here in your code i think you didn't multiply the given number with the
    > weight i have mentioned. The each digit of the given number should
    > multiply with weight ...............4,3,2,7,6, 5, 4, 3, 2, 7, 6, 5, 4, 3,2,
    > 1 in this format. That is in detail:
    >
    > To verify the number use the following weights from right to left:
    > 1, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7...
    > Multiply each digit by its corresponding weight. Add the results together..
    > For the number to be correct the
    > total must be divisible by 11.
    > Field with control digit 1 2 3 4 5 6 7 8 5
    > Weight 3 2 7 6 5 4 3 2 1
    > Produce +3 +4 +21 +24 +25 +24 +21 +16 +5 =143
    > The sum must be divisible by 11 (143 divided by 11 leaves a remainder of
    > 0).
    >
    > So my code has validated only the length of 11 digit. So i am looking for
    > 'n' length of number should be validated with weight
    > ...............4,3,2,7,6, 5, 4, 3, 2, 7, 6, 5, 4, 3,2, 1 from left to
    > right..
    >
    > Thanks again ...
    >
    >
    >
    > On Fri, Feb 22, 2013 at 4:33 PM, Alec Taylor <>wrote:
    >
    >> Whoops, my mistake:
    >>
    >> In [5]: [not len(x) >= 2 and len(x)<=25 for x in [str(y) for y in
    >> xrange(30)]]
    >> Out [5]: [True]*10, [False]*20
    >>
    >> But still, I'm guessing that's not the result you were looking for…
    >>
    >> On Sat, Feb 23, 2013 at 2:30 AM, Alec Taylor <>
    >> wrote:
    >> > Out[1]: '0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
    >> > 24 25 26 27 28 29'
    >> >
    >> > In [2]: [not len(x) >= 2 and len(x)<=25 for x in _]
    >> > Out[2]: [True]*79 # shorthand to prevent spam
    >> >
    >> >
    >> > I trust you can see the error now!
    >> >
    >> > On Sat, Feb 23, 2013 at 2:09 AM, Morten Engvoldsen <

    >> > wrote:
    >> >> 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
    >> >>
    >> >>
    >> >>
    >> >> --
    >> >> http://mail.python.org/mailman/listinfo/python-list
    >> >>

    >>

    >
    >
    Morten Engvoldsen, Feb 22, 2013
    #1
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Morten Engvoldsen

    Number validation issue

    Morten Engvoldsen, Feb 22, 2013, in forum: Python
    Replies:
    0
    Views:
    87
    Morten Engvoldsen
    Feb 22, 2013
  2. Alec Taylor

    Re: Number validation issue

    Alec Taylor, Feb 22, 2013, in forum: Python
    Replies:
    0
    Views:
    95
    Alec Taylor
    Feb 22, 2013
  3. Alec Taylor

    Re: Number validation issue

    Alec Taylor, Feb 22, 2013, in forum: Python
    Replies:
    0
    Views:
    75
    Alec Taylor
    Feb 22, 2013
  4. Morten Engvoldsen

    Re: Number validation issue

    Morten Engvoldsen, Feb 22, 2013, in forum: Python
    Replies:
    0
    Views:
    91
    Morten Engvoldsen
    Feb 22, 2013
  5. Morten Engvoldsen

    Re: Number validation issue

    Morten Engvoldsen, Feb 22, 2013, in forum: Python
    Replies:
    0
    Views:
    106
    Morten Engvoldsen
    Feb 22, 2013
Loading...

Share This Page