我正在尝试学习递归函数,但我似乎无法理解递归的想法.我已经观看了关于递归和视频教程的视频,但是当我尝试自己解决这些问题时,我无法想到所需的递归.但是,我可以使用循环和迭代很快地解决这些问题.
例如,我看到一个关于查找数字中的位数的问题,答案是:
def digit(n):
if n < 10:
return 1
else:
return 1 + digit(n/10)
Run Code Online (Sandbox Code Playgroud)
我知道这if是一个递归将停止的点,但我不明白这else部分是如何或为什么工作,即使看了答案.
使用递归函数时,我的思维过程应该是什么样的?