Python 处理方法中的异常

Python 处理方法中的异常,python,exception,methods,Python,Exception,Methods,我正在编写一个函数,提示用户输入一个值“r”,用于计算向量之间的距离(r=1:Manhattan距离,r=2:Euclidean距离,r=3:Minkowski距离) 在用户输入无效输入,然后输入有效输入后,我遇到了问题。在接受有效输入之前,必须输入两次。 我肯定我犯了一个简单的错误,但我一直没能弄明白 在用户输入无效输入后,谁能建议如何让它接受有效输入?您需要 return get_dist_scale(enteredVal) 在例外情况下 但是,在递归中验证输入不是一个好的实践(安全漏洞)

我正在编写一个函数,提示用户输入一个值“r”,用于计算向量之间的距离(r=1:Manhattan距离,r=2:Euclidean距离,r=3:Minkowski距离)

在用户输入无效输入,然后输入有效输入后,我遇到了问题。在接受有效输入之前,必须输入两次。 我肯定我犯了一个简单的错误,但我一直没能弄明白

在用户输入无效输入后,谁能建议如何让它接受有效输入?

您需要

return get_dist_scale(enteredVal)
在例外情况下

但是,在递归中验证输入不是一个好的实践(安全漏洞)。 尝试次数过多会导致堆栈溢出错误。我的建议是,切换到while循环。

您需要

return get_dist_scale(enteredVal)
在例外情况下

但是,在递归中验证输入不是一个好的实践(安全漏洞)。
尝试次数过多会导致堆栈溢出错误。我的建议是,切换到while循环。

不要仅在try-except中使用断言捕捉它们。另外,您的
try-except
块应该封装可能引发错误的最小代码,不要使用断言仅仅在try-except中捕获它们。此外,您的
try-except
块应该封装可能引起错误的最小代码
return get_dist_scale(enteredVal)