递归(Python3)
Posted testdeveloper
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归(Python3)相关的知识,希望对你有一定的参考价值。
# 递归:在函数中自己调用自己
# 递归超过最大深度报错:RecursionError: maximum recursion depth exceeded while calling a Python object
# sys.setrecursionlimit(100000) 可修改递归深度,默认996次(一般不修改,需要超过1000次递归才能解决的问题就不适合用递归)
# 递归的好处:代码简洁 递归的缺点:占内存(调用一次函数就开一个空间,一直调用一直开空间,导致占内存)
# 只要写递归函数就必须有结束条件
实例1:
# 斐波那契:后面的数等于前面两个数的和,从1,1开始
def feibo(n):
if n>2:
return feibo(n-1)+feibo(n-2)
elif n==1 or n==2:
return 1
实例2:
#阶乘
def jiec(n):
if n !=1:
return n*jiec(n-1)
else:
return 1
实例3:
# 二分查找法:针对有序序列,先取中间值进行比大小,小则再取左边的序列的中间值进行对比,大则再取右边序列的中间值进行对比
def binarySearch(list1,num):
mid = len(list1)//2
if num > list1[mid]:
return mid + binarySearch(list1[mid:],num)
elif 0< num <list1[mid]:
return binarySearch(list1[0:mid],num)
elif num == list1[mid]:
return mid
else:
print(‘cant find‘)
以上是关于递归(Python3)的主要内容,如果未能解决你的问题,请参考以下文章