Bug asking for input number
MRAB
python at mrabarnett.plus.com
Fri Nov 15 21:33:51 EST 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