python-回调函数和递归函数
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-回调函数和递归函数相关推荐
- python回调函数实例详解_Python回调函数用法实例详解
本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 ...
- python回调接口_三个案例带你了解python回调函数
原标题:三个案例带你了解python回调函数 回调函数: 把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用 ...
- Python回调函数的实现
Python回调函数的实现 一.回调函数介绍: 回调函数就是一个通过函数名调用的函数.如果你把函数的名字(地址)作为参数传递给另一个函数,当这个参数被用来调用其所指向的函数时,我们就说这是回调函数. ...
- python 回调函数(Callback)
什么是回调函数?我们绕点远路来回答这个问题.编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是编写 ...
- Python回调函数用法实例
什么是回调函数? 我们绕点远路来回答这个问题. 编程分为两类:系统编程(system programming)和应用编程(application programming).所谓系统编程,简单来说,就是 ...
- python mount回调函数_为python回调函数设置argtype
我对Python很在行,所以希望我能正确地表达这个问题.在 整个问题涉及从Python调用C例程.我可以通过把一些相关的问题/答案凑在一起来接近,但我似乎不能把事情安排得很好.有两个方面:第一个是用指 ...
- python 回调函数
在之前学爬虫的时候,就遇到了这个问题,当时没弄明白.现在明白了,特来记录. 首先看一个小例子,后面会附上知乎一位大神的解说. def a(i):""""回调函数 ...
- Python 回调函数的实现
什么是回调函数? 在python中一些变量都是对象,包括函数,函数名就是函数对象的变量名称,那么是否要将函数名变量做为参数传给其它函数呢? 答案是肯定的. 当函数B的函数名做为参数,传给别函数A时,并 ...
- Python——回调函数(callback)
摘要 主要是介绍python 的回调函数callback. 什么是回调函数 当程序运行是,一般情况下,应用程序会时常通过API调用库里所预先备好的函数.但是有些库函数却要求应用先传给它一个函数,好在合 ...
- python 回调函数的使用_如何在python中使用回调函数?
我想知道如何正确使用 Python 2.7回调函数. 我在我的代码中有一些来自Cherrypy auth示例的回调函数. (这些回调会返回一个可以评估为True或False的函数,具体取决于登录的用户 ...
最新文章
- 安装VMware-workstation-full-14.1.1-7528167 附带下载地址
- 电子商务网站比较常用的缓存策略架构
- 通过ssh建立点对点的隧道,实现两个子网通信
- khoury计算机科学学院,东北大学Open House中国站
- 用html还是xml做网页好,XML与HTML的比较
- 使用jQuery在AJAX请求中添加标头
- yii2 init初始化脚本分析
- 中国移动苏州研发中心前端笔试(2)
- fpgrowth算法实战 mlib_Spark MLlib FPGrowth关联规则算法
- 芒格推荐书单(完全版32本)
- Intel出品开源图片标注工具CVAT在Ubuntu18.04上部署
- 添加打印机无法搜索计算机,添加打印机时搜索不到如何解决 电脑搜不到打印机设备的处理办法...
- PRD文档范例,千万收藏的产品经理写作手册
- 派对屋3000效果器怎样调试_卡拉OK前级效果器如何调试?
- 二、PCB-layout 中泪滴设置及其作用
- solaris启动过程详解
- Java高频重点面试题,看这一篇就够了。
- 时间、日期的一些用法
- 大数据告诉你何时何地买手机最划算!
- 【湍流】基于Matlab模拟高斯光束在湍流大气中传输仿真,得到大气湍流相位屏、以及光斑强度变化
热门文章
- 设置android启动器,教程:在任意 Android 设备上安装 HTC 专属桌面启动器
- EhCache的特性
- 图灵奖得主Bengio明星创业公司被「贱卖」| AI日报
- 连岳读书|这是不让人害怕的数学,课堂上学不到的数学!
- 2020图灵年度好书大赏 | 15周年视频纪念版
- Java 地位不保,落后已成定局 ?| 10月编程语言排行
- 被黑客们使用的代码混淆技术
- Free Lunch for Few-Shot Learning: Distribution Calibration(ICLR 2021)
- 卷积神经网络资料汇总
- 独家 | 2021年打破了零日黑客攻击的记录