函数接受(str)用户输入,直到给出一个可以解释为int的值

时间:2017-11-12 23:05:48

标签: python loops

def get_integer(maximum):
x= int(input())
while x > 0 and maximum > x:
    if type(x) == type(5):
        return x

可以在0和参数(int)之间解释为maximum的输入,如果任何输入不在范围内或者不是数字,则它会循环返回。< / p>

这是我到目前为止所运行的,但是当我得到多个输入时,我得到了 ValueError: invalid literal for int() with base 10

1 个答案:

答案 0 :(得分:0)

假设参数maximum是有意义的,因为python中的整数没有大小限制,并且不需要输入文本(例如它说“在这里输入文本”)

def get_integer(maximum):
    try:
        inp = int(input())
    except TypeError:
        print("Please input an integer")
        return get_integer(maximum)
    except ValueError:
        print("Please only enter numeric characters and no spaces")
        return get_integer(maximum)
    if inp >= 0 and inp <= maximum:
        return inp
    else:
        print ("Please input a number between 0 and %d", maximum)
        return get_integer(maximum)