Python实现:函数的递归(示例)

Posted 星喑0909

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python实现:函数的递归(示例)相关的知识,希望对你有一定的参考价值。

#1,用递归实现计算函数的阶乘
def myfac(n): #用循环实现 s= 1 for i in range(1,n+1): s*=i print(s) myfac(5) def myfac(n): #用循环实现 if n==1: return 1 return n*myfac(n-1) print(myfac(5))

 

#2,用递归实现求和:
 def mysum(n):
    #返回1+2+3+4+5+n的和
print(mysum(100))#5050
def  mysum(n):
    if n==1:
        return 1
    return n+mysum(n-1)
print(mysum(100))

 

 

3.已知有列表
L=[[3,5,8],10,[[13,14,],15,18],20]
写一个函数print_list(lst)打印出所有的数字
写一个函数 sum_list(lst)返回列表中所有数字
的和
注:
type(x)函数可以返回一个对象的类型
>>>type(20) is int #True
type([3,5,8]) is list #True

def print_list(lst):
    # l=[]
    for x in lst:
        if type(x) is int:
            # print_list(x)
            print(x)
        else:
            print_list(x)
            # print(x)
def sum_list(lst):
    sum=0
    for x in lst:
        if type(x) is list:
            sum+=sum_list(x)
        else:
            sum+=x
    return sum

L=[[3,5,8],10,[[13,14,],15,18],20]
print_list(L)
print(sum_list(L))

 

4,用递归的方法实现快速排序

def QuickSort(myList,start,end):
    if start < end:
        i,j = start,end
        #设置基准数
        base = myList[i]
        while i < j:
            #如果列表后边的数,比基准数大或相等,则前移一位直到有比基准数小的数出现
            while (i < j) and (myList[j] >= base):
                j = j - 1

            #如找到,则把第j个元素赋值给第个元素i,此时表中i,j个元素相等
            myList[i] = myList[j]

            #同样的方式比较前半区
            while (i < j) and (myList[i] <= base):
                i = i + 1
            myList[j] = myList[i]
        #做完第一轮比较之后,列表被分成了两个半区,并且i=j,需要将这个数设置回base
        myList[i] = base
        #递归前后半区
        QuickSort(myList, start, i - 1)
        QuickSort(myList, j + 1, end)
    return myList


myList = [49,38,65,97,76,13,27,49]
print("Quick Sort: ")
QuickSort(myList,0,len(myList)-1)
print(myList)

 

 

以上是关于Python实现:函数的递归(示例)的主要内容,如果未能解决你的问题,请参考以下文章

Python的递归函数

python 函数的递归操作

Python3-递归函数

Python基础:Python函数文件操作递归

Python - 递归公式

Python函数