Python 验证函数并将变量返回到输入()中

Python 验证函数并将变量返回到输入()中,python,validation,input,Python,Validation,Input,我制作了一个函数来验证用户在输入中提供的两个变量。 我有两个问题: 在函数break中,给出我和错误:break外部循环。我修不好 若输入被发送到函数,当它失败时,我如何将其发送回输入,以便用户重新输入 请查找以下代码: def testify(arg_test): while True: i = arg_test try: i == int(i) except ValueError as e: print ("Enter v

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

  • 在函数
    break
    中,给出我和错误:
    break
    外部循环。我修不好
  • 若输入被发送到函数,当它失败时,我如何将其发送回输入,以便用户重新输入
  • 请查找以下代码:

    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);
    

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

    def验证(arg_测试):
    i=arg_测试
    尝试:
    int(i)#这足以测试arg_测试是否可以解析为整数
    返回参数检验
    除ValueError为e外:
    新输入=输入(“输入有效的int值”)
    返回验证(新输入)
    
    编辑:
    将我的答案更改为使用递归函数检查用户的新输入。

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

    我只需要执行以下代码:

    else:
        break()
        testify(arg_test)
    
    我不太确定的第一个问题是,
    break
    函数,因为我很少使用它!但是我想说:试着缩进你的
    try
    循环,除了
    循环,所以它在
    下面,而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
    

    希望这有帮助

    你有缩进问题,在python中缩进是非常重要的!在except语句中,您可以将其设置为reccursive函数以解决返回问题2。通过此更改,它使用递归函数,如果输入有效,则返回原始参数,否则,它将再次输入函数,因此不需要循环。