https://www.toutiao.com/a6642513312263176717/

回调函数

一个函数中的参数是另一个函数的名字。

#回调函数
i=10;
j=20;def myfunc(i,j,f):return f(i,j);def sum(a,b):return '{}+{}={}'.format(a,b,a+b);print(myfunc(i,j,sum));
注:f参数将来会是sum函数的名字,f被称之为回调参数、sum被称之为回调函数。

运行结果:

10+20=30
[Finished in 0.1s]

递归函数

函数体内调用本函数。

a函数调用a函数

递归函数不能写成死循环,如果写成死循环则很容易引起内存溢出。

统计目录大小

一定要善于使用草图来完成程序的设计

#递归函数
num=3;def myfunc(n):print(n);if n>1:myfunc(n-1);print(n);myfunc(num);

运行结果:

3
2
1
1
2
3
[Finished in 0.1s]
注:结果为什么是3/2/1 1/2/3

为什么是3、2、1和1、2、3?

首先,程序的执行是自上而下、自左至右的。

下图是递归函数的草图,

第一次执行时,输出两个3,由于满足if条件,到myfunc时,继续执行myfunc2,所以第一次没有输出两个3。

第二次执行时,输出两个2,由于满足if条件,到myfunc时,继续执行myfunc1,所以第二次没有输出两个2。

第三次执行时,输出两个1,由于不满足if条件,到myfunc时,该函数结束执行,此时输出两个1。

综上所述,第一次输出两个3、第二次输出两个2、第三次输出两个1,但是程序的执行是自上而下、自左至右的。所以最后输出的结果是我们看到的3、2、1和1、2、3。

不知道大家明白没有?

递归草图
myfunc(3){print(3);myfunc(2){print(2);myfunc(1){print(1);print(1);}print(2);}print(3);
}

递归函数的应用

使用递归函数完成数字累加之和。

#递归函数
num=10;
def myfunc(n):if n>1:return n+myfunc(n-1);else:return 1;
print(myfunc(num));# 递归草图
# myfunc(3):
#  return 3+myfunc(2){
#   return 2+myfunc(1){
#    return 1;
#   }#  }# }
#
#
# def myfunc(n):
#   if n>1:
#    return n+myfunc(n-1);
#   else:
#    return 1;

运行结果:

55
[Finished in 0.1s]

原因如下:

最后第一次返回的3+第二次返回的3+第三次不满足条件返回的1=6

结语

感谢阅读,欢迎在评论区中发表自己不同的观点,若有其他问题请在评论区留言,喜欢的朋友请多多关注转发支持一下。

头条号:ys0202

----------------END----------------

python-回调函数和递归函数相关推荐

  1. python回调函数实例详解_Python回调函数用法实例详解

    本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...

  2. python回调接口_三个案例带你了解python回调函数

    原标题:三个案例带你了解python回调函数 回调函数: 把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用 ...

  3. Python回调函数的实现

    Python回调函数的实现 一.回调函数介绍: 回调函数就是一个通过函数名调用的函数.如果你把函数的名字(地址)作为参数传递给另一个函数,当这个参数被用来调用其所指向的函数时,我们就说这是回调函数. ...

  4. python 回调函数(Callback)

    什么是回调函数?我们绕点远路来回答这个问题.编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是编写 ...

  5. Python回调函数用法实例

    什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是 ...

  6. python mount回调函数_为python回调函数设置argtype

    我对Python很在行,所以希望我能正确地表达这个问题.在 整个问题涉及从Python调用C例程.我可以通过把一些相关的问题/答案凑在一起来接近,但我似乎不能把事情安排得很好.有两个方面:第一个是用指 ...

  7. python 回调函数

    在之前学爬虫的时候,就遇到了这个问题,当时没弄明白.现在明白了,特来记录. 首先看一个小例子,后面会附上知乎一位大神的解说. def a(i):""""回调函数 ...

  8. Python 回调函数的实现

    什么是回调函数? 在python中一些变量都是对象,包括函数,函数名就是函数对象的变量名称,那么是否要将函数名变量做为参数传给其它函数呢? 答案是肯定的. 当函数B的函数名做为参数,传给别函数A时,并 ...

  9. Python——回调函数(callback)

    摘要 主要是介绍python 的回调函数callback. 什么是回调函数 当程序运行是,一般情况下,应用程序会时常通过API调用库里所预先备好的函数.但是有些库函数却要求应用先传给它一个函数,好在合 ...

  10. python 回调函数的使用_如何在python中使用回调函数?

    我想知道如何正确使用 Python 2.7回调函数. 我在我的代码中有一些来自Cherrypy auth示例的回调函数. (这些回调会返回一个可以评估为True或False的函数,具体取决于登录的用户 ...

最新文章

  1. 安装VMware-workstation-full-14.1.1-7528167 附带下载地址
  2. 电子商务网站比较常用的缓存策略架构
  3. 通过ssh建立点对点的隧道,实现两个子网通信
  4. khoury计算机科学学院,东北大学Open House中国站
  5. 用html还是xml做网页好,XML与HTML的比较
  6. 使用jQuery在AJAX请求中添加标头
  7. yii2 init初始化脚本分析
  8. 中国移动苏州研发中心前端笔试(2)
  9. fpgrowth算法实战 mlib_Spark MLlib FPGrowth关联规则算法
  10. 芒格推荐书单(完全版32本)
  11. Intel出品开源图片标注工具CVAT在Ubuntu18.04上部署
  12. 添加打印机无法搜索计算机,添加打印机时搜索不到如何解决 电脑搜不到打印机设备的处理办法...
  13. PRD文档范例,千万收藏的产品经理写作手册
  14. 派对屋3000效果器怎样调试_卡拉OK前级效果器如何调试?
  15. 二、PCB-layout 中泪滴设置及其作用
  16. solaris启动过程详解
  17. Java高频重点面试题,看这一篇就够了。
  18. 时间、日期的一些用法
  19. 大数据告诉你何时何地买手机最划算!
  20. 【湍流】基于Matlab模拟高斯光束在湍流大气中传输仿真,得到大气湍流相位屏、以及光斑强度变化

热门文章

  1. 设置android启动器,教程:在任意 Android 设备上安装 HTC 专属桌面启动器
  2. EhCache的特性
  3. 图灵奖得主Bengio明星创业公司被「贱卖」| AI日报
  4. 连岳读书|这是不让人害怕的数学,课堂上学不到的数学!
  5. 2020图灵年度好书大赏 | 15周年视频纪念版
  6. Java 地位不保,落后已成定局 ?| 10月编程语言排行
  7. 被黑客们使用的代码混淆技术
  8. Free Lunch for Few-Shot Learning: Distribution Calibration(ICLR 2021)
  9. 卷积神经网络资料汇总
  10. 独家 | 2021年打破了零日黑客攻击的记录