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