Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   Re: Number validation issue (http://www.velocityreviews.com/forums/t957947-re-number-validation-issue.html)

 Morten Engvoldsen 02-22-2013 06:27 PM

Re: Number validation issue

Hi,
Just to make it more clear: I am looking for how to generate the weight in :
1, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7.. format for any
length of number instead of

weights = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2, 1]

only for fixed digit.

My below code can check only for 9 digit, so if we provide a number of more
than 9 digit, it is not able to check that number. Hope, this makes clear
what i am looking for...

On Fri, Feb 22, 2013 at 6:27 PM, Morten Engvoldsen <mortenengv@gmail.com>wrote:

> Hi,
> My below code is wrong :
>
>
> 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
>
> it works for 9 digit number , not 11 digit number, so i have changed the
> code and sending again with correct code with valid number:
>
> def is_valid_number(checknum):
> weights = [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("123456785")
>
> This code validate this 9 digit number "123456785" with below algorithm:
>
>
> 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 i am looking for solution how i can change this code to validate with
> weight 1, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7... from
> right to left for any length of number. This code validate only 9 digit
> number.
>
> Sorry for inconvience :(
>
>
>

 All times are GMT. The time now is 05:31 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.