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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yysyangyangyangshan/article/details/83758952

前面学会了如何创建函数,至于函数参数列表的使用,函数内部作用域,函数重载等等,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

猜你喜欢

转载自blog.csdn.net/yysyangyangyangshan/article/details/83758952