Python

状课网-少儿编程网课专业平台

Python python青少年编程—函数的递归调用

发布时间:2021-11-18 16:09:51 浏览 0
各位小伙伴大家好: 上期我们学习了函数的嵌套调用,今天我们来继续学习函数的另一个比较需要逻辑能力的应用——递归调用。  

所谓递归调用:就是在函数中调用了函数自身,一层一层调用自己直到遇到退出条件满足之后,再逐层返回。 我们来看一个递归函数的简单例子——求1加到n的和。  

python青少年编程—函数的递归调用

  首先进入函数此时n=10,然后又进入函数本身此时n=9,以此类推一直到n=1。 开始返回,依次把1,2,3,……9,10传递给上一层函数,这样就把所有的这些数字加起来了。 再来看看使用递归函数求阶乘。  

python青少年编程—函数的递归调用

  这段代码和上面的区别在于把+改成*(乘号),从而得到n的阶乘。 在这个例子中我们创建了一个新的变量来存放结果,这是有原因的。   大家可以试着像上面的代码一样把result改成num试试,如果你动手去操作一定就会知道,它的结果是0。   至于为什么就留给大家去思考了,这里给大家一点小小的提示,看看下面的代码。  

python青少年编程—函数的递归调用

  递归函数除了求连续自然数的和以及阶乘以外,还能求等差、等比数列。   下面我们一起来看看  

python青少年编程—函数的递归调用

  这是求一个公差为2的自然等差数列,至于为什么是公差为2,这个大家应该不难理解。   下面我们来看一个稍微不一样的数列:  

python青少年编程—函数的递归调用

  这里的通项公式不是n,而是2n。 想想为什么上面的代码中明明是sum(num-2) 而公差却是4。   学完等差数列我们再来看看等比数列。  

python青少年编程—函数的递归调用

这里用到一个新的知识点,a**b在python中表示的是a的b次幂。 上面的代码中a=2,b是一个变化的数字num。   另外请大家注意一下这里我们没有另外创建变量,而是使用的num。 下面我们继续看一个稍微有些不一样的等比数列。  

python青少年编程—函数的递归调用

这个代码和前面的不一样的地方是递归函数退出的条件不是>0,而是>3。 大家可以在前面的代码中试试看看能不能正常运行。   另外这里我们创建了一个新的变量result来存放结果,大家可以去思考一下,在哪些情况下可以使用num,那些情况下必须新建变量。   这期的课程难度稍微有点大,建议初中及以上的小伙伴学习。 本期就为大家介绍到这里,我们下期再会。  

 

文章来源:创客编程小屋

本文链接:https://www.ascratch.com/news/17472.html

上一篇:arduino智能小车项目—配件介绍及代码部分教程 下一篇:返回列表