递归

1.编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。
2.在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。
3.一种计算过程,如果其中每一步都要用到前一步或前几步的结果,称为递归的。用递归过程定义的函数,称为递归函数,例如连加、连乘及阶乘等。凡是递归的函数,都是可计算的,即能行的。

函数一个递归必须满足以下两个条件:
1) 在每一次调用自己时,必须是(在某种意义上)更接近于解;
2) 必须有一个终止处理或计算的准则。
案例如下:

# 函数求1	100 之间的和
def sum(n):
	return n + sum(n -1)

res = sum(100)
print("1~100的和是{}".format(res))

此时虽然执行了递归,但没有终止条件,他会一直不穷尽的运算下去,python中有一种机制,认为没有一种函数会需要递归1000次,所以当函数递归1000次后,python会强制终止并报错:

python 定义递增列表 python定义递归函数_递归

正确写法当如下所示:

# 函数求1	100 之间的和
def sum(n):
	if n == 1:
		return 1
	return n + sum(n -1)


res = sum(100)
print("1~100的和是{}".format(res))

python 定义递增列表 python定义递归函数_python_02