Python - 输入验证

nat*_*and 1 python validation input python-3.x python-3.3

我想在继续之前创建需要用户输入大于2的整数的代码.我正在使用python 3.3.这是我到目前为止所拥有的:

def is_integer(x):
    try:
        int(x)
        return False
    except ValueError:
        print('Please enter an integer above 2')
        return True

maximum_number_input = input("Maximum Number: ")

while is_integer(maximum_number_input):
    maximum_number_input = input("Maximum Number: ")

    print('You have successfully entered a valid number')
Run Code Online (Sandbox Code Playgroud)

我不确定的是如何最好地处理整数必须大于2的条件.我刚刚开始学习python但是想要养成良好的习惯.

Rom*_*huk 5

这应该做的工作:

def valid_user_input(x):
    try:
        return int(x) > 2
    except ValueError:
        return False

maximum_number_input = input("Maximum Number: ")

while valid_user_input(maximum_number_input):
    maximum_number_input = input("Maximum Number: ")
    print("You have successfully entered a valid number")
Run Code Online (Sandbox Code Playgroud)

甚至更短:

def valid_user_input():
    try:
        return int(input("Maximum Number: ")) > 2
    except ValueError:
        return False

while valid_user_input():
    print('You have successfully entered a valid number')
Run Code Online (Sandbox Code Playgroud)