我的代码中的递归错误-结果返回“无”

时间:2019-08-25 04:43:42

标签: python recursion

输入始终以字符串形式传递,无论我是否输入int ostr,但是我正在测试变量是否实际上是整数..如果不是,它将引发一个异常,该异常以递归方式调用该函数...

逻辑有效...

但是如果我使用传递给它的变量作为字符串来启动函数,结果将返回“无”

我尝试了所有类型的组合...

该函数必须像'print(get_number())'一样执行

我无法在函数内部打印结果,因为它是问题说明的一部分

我已经得出结论,问题出在递归函数中...但是我无法弄清楚

def get_number():
    val1 = input('Enter a number: ')
    try:
        val1 = int(val1)
        while val1 < 1 or val1 > 10:
            val1 = input('Enter a number: ')
            val1 = int(val1)

        str_to_print = '{:.1f}'.format(val1)
        return str_to_print

    except ValueError:
        get_number()


print(get_number())

这些是预期的结果:

,当按此顺序执行时,逻辑会运行,但结果是“无”。

enter image description here

1 个答案:

答案 0 :(得分:3)

您在return块中缺少except

    except ValueError:
        return get_number()