Python-如何实现函数的递归操作

2024-11-12 00:57:58

递归的要素,递归运行的过程。

1.函数实现递归的条件

1、一个函数在它的内部引用自身,并在一定条件下停止函数的调用。这就会实现一个递归的过程。第一个条件是函数内部引用自身。引用自身会发生什么情况:示例:def myFun(a): print(a) a+=1 myFun(a)myFun(1)RecursionError: maximum recursion depth exceeded while calling a Python object递归错误:调用python对象时超过了最大递归深度

Python-如何实现函数的递归操作

3、第二个条件,停止函数的调用,就是递归的出口。例如return就可以作为一个出口。例如:把上面的例子在调用自身前加个条件返回就可以了;def myFun(a): print(a) if a==5: return a+=1 myFun(a)myFun(1)

Python-如何实现函数的递归操作

2、以上面的函数为例,用debug来看看递归运行的轨迹:有一点必须搞清楚,函数return的返回值,是返回到调用函数的地方。

Python-如何实现函数的递归操作

2、首先用for循环来层层遍历进行搜索:例如:import omyDir = 'F:\\testfor i in os.listdir(myDir): fPath = os.path.join(myDir,i) if os.path.isfile(fPath) and fPath.endswith('.txt'): print(fPath) elif os.path.isdir(fPath): for i in os.listdir(fPath): fPath1 = os.path.join(fPath,i) if os.path.isfile(fPath1) and fPath1.endswith('.txt'): print(fPath1)输出:F:\test\aa.txtF:\test\bb.txtF:\test\no1-1\cc.txtF:\test\no1-2\hh.txt这是遍历了两层,如果有十层八层,就混乱了。这种情况要考虑递归写法。

Python-如何实现函数的递归操作

小结:

1、这些是方便解释的例子,实际操作可能会碰到很多复制的情况进行判断,但不管怎样,一定要有终止调用自身的条件。

猜你喜欢