验证函数并将变量返回给input()

时间:2020-05-05 20:42:09

标签: python validation input

我制作了一个函数,用于验证用户在输入中提供的2个变量。 我有两个问题:

  1. 在函数break中给我和错误:break外循环。我无法解决。
  2. 如果将输入发送给功能,并且在输入失败时,如何将其发送回输入以供用户重新输入?

请找到以下代码:

def testify(arg_test):
    while True:
        i =  arg_test
    try:
        i == int(i)
    except ValueError as e:
      print ("Enter valid int value")
    else:   
         break
    return arg_test

number_1 = input("Write first number: ");
number_2 = input("Write second number: ");

arg_number_1 = testify(number_1);
arg_number_2 = testify(number_2);

2 个答案:

答案 0 :(得分:1)

您的代码中存在缩进问题,请查看此修复程序:

def testify(arg_test):
    i =  arg_test
    try:
        int(i) # This is sufficient to test if arg_test could be parsed as an integer
        return arg_test
    except ValueError as e:
        new_input = input("Enter valid int value")
        return testify(new_input)

编辑: 更改了我的答案,以使用递归功能检查用户的新输入。

答案 1 :(得分:1)

首先,我最确定的问题是:2)在try except错误之后重新输入变量。

我只需执行以下代码:

else:
    break()
    testify(arg_test)

我不太确定的第一个问题是break函数,因为我很少使用它!但是我会说:尝试缩进tryexcept循环,使其位于while True:循环的下方!

赞:

def testify(arg_test):
    while True:
        i =  arg_test
        try:
            i == int(i)
        except ValueError as e:
            print ("Enter valid int value")
        else:   
            break
            testify(arg_test)
    return arg_test

希望这会有所帮助!

相关问题