所谓递归,就是函数调用自身。
有以下三个要素:
1.递归算法必须有一个基本结束条件**((最小规模问题的直接解决)**
2.递归算法必须能改变状态向基本结束条件演进**(减小问题规模)**
3.递归算法必须调用自身**(解决减小了规模的相同问题)**
举例子:加法的递归形式
def sum(list):
# 1. 最小规模问题的直接解决 当list的长度为1的时候直接返回
if len(list) == 1:
return list[0]
# 3.调用了sum 2.list长度每次都会减一,缩小了问题规模
return list[0] +sum(list[1:])
print(sum([1,2,4]))
计算列表的长度:递归方法
# 计算列表元素个数
def lenList(list):
if not list:
return 0
else:
return 1+lenList(list[1:])
print(lenList([1,2,3]))
#输出
3