Bug asking for input number

MRAB python at mrabarnett.plus.com
Sat Nov 16 03:33:51 CET 2013


On 16/11/2013 02:15, Arturo B wrote:
> Hi! I hope you can help me.
>
> I'm writting a simple piece of code.
> I need to keep asking for a number until it has all this specifications:
>
> - It is a number
> - It's lenght is 3
> - The hundred's digit differs from the one's digit by at least two
>
> My problem is that I enter a valid number like: 123, 321, 159, 346... and it keeps asking for a valid number.
>
> Here's mi code:
>
> res = input('Give me a number --> ')
> hundreds = int(res[0])
> ones = int(res[2])
>
> # checks if the user enters a valid number
> while not res.isdigit() or not len(res) == 3 or abs(hundreds - ones) <= 2:
>      res = input('Enter a valid number --> ')
>
> Thanks for help!
>
In the loop you're asking for the number but not doing the:

     hundreds = int(res[0])
     ones = int(res[2])

bit for it.

Also, after the number is entered for the first time, you're not
first checking its length or that it's a number.

It's probably easier just to use a break in a loop:

while True:
     res = input('Give me a number --> ')
     if len(res) == 3 and res.isdigit() and abs(int(res[0]) - 
int(res[2])) >= 2:
         break




More information about the Python-list mailing list