首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证函数并将变量返回到and ()

验证函数并将变量返回到and ()
EN

Stack Overflow用户
提问于 2020-05-05 20:42:09
回答 2查看 192关注 0票数 1

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

  1. 在函数break给我和错误:break外部循环。我无法修复它。
  2. 如果输入被发送到函数,当它失败时,我如何将它发送回输入以便用户重新输入?

请查找以下代码:

代码语言:javascript
复制
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);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-05 20:48:15

您的代码中有缩进问题,请查看此修补程序:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2020-05-05 20:51:46

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

我只需执行以下代码:

代码语言:javascript
复制
else:
    break()
    testify(arg_test)

我不太确定的第一个问题,break函数,因为它很少被我使用!但是我想说的是:尝试将您的try except except循环缩进,因此它位于 while True: 循环下面!

如下所示:

代码语言:javascript
复制
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

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61622695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档