Skip to content Skip to sidebar Skip to footer

Python Getting User Input Errors

I have a simple program that prompts user to enter number between 1-9 and if the number has been entered previously it will ask the user to enter another number. The user has 10 tr

Solution 1:

You need to use

return getNum(numList)

instead of

getNum(numList)

in the getNum function. The reason is that you call the getNum function recursively, thus you have to return the accepted value back through all recursions you made. Additionally, you must pass the arguments to each call.

Solution 2:

the way you are calling getNum() in "if conditions" is wrong it should be:-

if num <= 0 or num >9:
    print'Invalid number. Please try again.'
    getNum(numList)

if num in numList:
    print'Number taken. Please try again.'
    getNum(numList)

Solution 3:

A complete solution without the dangers of input, error handling and no problem with a recursion limit.

defget_num(num_list):
    whileTrue:
        try:
            num = int(raw_input('Pick your number: '))
        except ValueError:
            print('Not a number')
        else:
            if0 < num <= 9:
                ifnot num in num_list:
                    return num
                else:
                    print('Number taken.')
            else:
                print('Invalid number.')

number_list = []
for _ inrange(5):
    number = get_num(number_list)
    print('Number entered: {}'.format(number))
    number_list.append(number)

Post a Comment for "Python Getting User Input Errors"