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

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to