停止递归的方法有多种,以下是几种常用的方法:
方法一:设置递归深度
Python 默认的递归深度为 1000,当递归深度超过这个值时会抛出 RecursionError 异常,可以通过设置递归深度来停止递归。
代码示例:
import sys
sys.setrecursionlimit(2000) # 设置递归深度为 2000
def func():
func() # 无限递归
func()
执行以上代码,会抛出 RecursionError 异常,其信息为:
RecursionError: maximum recursion depth exceeded in comparison
方法二:添加终止条件
递归函数需要有一个终止条件,当满足这个条件时,递归停止。添加终止条件可以避免递归陷入死循环。
代码示例:
def sum(n):
if n == 0:
return 0 # 终止条件
else:
return n + sum(n-1) # 递归调用
print(sum(10))
以上代码计算了 1 到 10 的整数和,终止条件为 n 等于 0,当 n 等于 0 时,递归停止,返回值为 0。每次递归调用时,n 的值减 1,直到 n 等于 0。
以上就是 Python 停止递归的两种常用方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python如何停止递归 - Python技术站