输入始终以字符串形式传递,无论我是否输入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())
这些是预期的结果:
,当按此顺序执行时,逻辑会运行,但结果是“无”。
答案 0 :(得分:3)
您在return
块中缺少except
:
except ValueError:
return get_number()