python递归需要注意的事项


python中的递归:

python中递归经常被用到,但在写递归的时候经常会出现一些小问题

问题一:递归深度过深

RecursionError: maximum recursion depth exceeded in comparison 

出现上述错误的原因就是递归的深度过深,python默认的递归深度是1000,如果超过1000就会报上述的错误

解决方法:重新设置递归深度

import sys
sys.setrecursionlimit(30000) 

问题二:递归中的返回值为None

有时在写递归的时候,加了递归结束条件和结束条件的返回值,可是接收返回值的时候,接收到的却是个None值

分析思路:出现这种问题的原因是因为递归在达到结束判断条件的时候,不会立马跳出递归体,而是会把递归结果返回给上一个递归方法

解决方法:可以申明一个全局变量global,让global参与递归远算,递归方法不返回结果,只是在运算的时候把结果赋值给global变量。