递归(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)的主要内容,如果未能解决你的问题,请参考以下文章

Python3 递归算法

python3之递归

第十一天python3 递归函数

python3-递归

python3--递归

python3--递归