欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

少说话多写代码之Python学习037——创建函数03(函数的使用 )递归

程序员文章站 2022-05-08 22:51:32
...

前面学会了如何创建函数,至于函数参数列表的使用,函数内部作用域,函数重载等等,Python中的函数与其他语言的函数并无不同,所以这里不再说明。我们一般学习的第一门编程语言大多是C语言,
学习C语言我们每每学的都是递归,二分查找,冒泡排序以及各种排序等等。那么我们选一两样看看Python中如何实现。
看看递归和二分法查找,看看函数的使用。

递归,递归最大特点是函数自己调用自己,直到最终返回一个值,然后层层返回。
我们看两个例子,一个数的阶乘、一个数的幂。

我们用自己理解的方式实现阶乘,如下

def factorial(n):
    if(n<=0):
        return 1
    result=n;
    for i in range(1,n):
        result = result*i
    return  result
#调用
print(factorial(0))
print(factorial(1))
print(factorial(3))

输出

1
1
6

改用递归实现,

#递归实现
def factorialStandard(n):
    if n<=0:
        return 1
    else:
        return  n*factorial(n-1)
#调用
print(factorial(0))
print(factorial(1))
print(factorial(3))

输出

1
1
6

再来看幂次方的实现,
先用幂次方的定义来实现,

#此处只考虑n为正数
def myPower(x,n):
    if(n<=0):
        return  1
    result=1
    for i in range(n):
        result =result*x
    return  result
#调用
print(myPower(1,0))
print(myPower(1,1))
print(myPower(2,3))

输出

1
1
8

改为递归实现幂次方

#递归实现幂
def myPowerStandard(x,n):
    if n<=0:
        return  1
    else:
        return  x*myPowerStandard(x,n-1)
#调用
print(myPowerStandard(1,0))
print(myPowerStandard(2,3))

输出

1
8

工程文件下载:https://download.csdn.net/download/yysyangyangyangshan/10766620

相关标签: 递归