我对 Python 很有经验,但是当我帮助一位 friend 编写脚本时,我注意到他以与我熟悉的方式不同的方式解决了一个常见问题。他确保用户输入的格式有效( float );我已经习惯看到这样的东西,这也是我能找到的所有答案所说的:
def get_input()
while True:
try:
val = float(input("input pls"))
return val
except:
print("not valid, try again)
但是他使用递归解决了这个问题,如下所示:
def get_input():
try:
val = float(input("input pls"))
return val
except:
print("not valid, try again")
return get_input()
这有什么缺点吗?
最佳答案
与此相关的一些问题或数据:
- 存在递归限制(非常高,但可能会超过)
- 每次递归调用
get_input
方法时,都会为作用域创建一个新的堆栈,更重要的是,它会链接try... except
block ,这是对于内存使用和性能来说非常糟糕。 - 递归方法通常更难调试。
但由于它看起来像一个玩具示例,也许这并不重要。
关于python - 确保 Python 中的用户输入有效时,是否有理由不使用递归?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42199555/