博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二十八节,递归
阅读量:6404 次
发布时间:2019-06-23

本文共 1471 字,大约阅读时间需要 4 分钟。

递归的表现形式(此列不是递归只是说明递归的表现形式)
#递归的表现形式(此列不是递归只是说明递归的表现形式)def f1():    return "递归的表现形式"    #f1函数里的功能,返回"递归的表现形式"字符串def f2():    r = f1()    #执行f1函数    return r    #返回f1函数的结果def f3():    r = f2()    #执行f2函数    return r    #返回f2函数的结果def f4():    r = f3()    #执行f3函数    return r    #返回f3函数的结果adc = f4()  #执行f4函数print(adc)#打印出 递归的表现形式#递归就是嵌套式请求,向第一层请求,程序会自动一层一层的将请求信息传递到底层,然后将结果在一层一层的传递回来

 

初识递归 程序本身自己调用自己称之为递归,类似于俄罗斯套娃,体现在代码中:用户执行最外(N)层函数,最外侧调用N-1层函数,N-1层函数调用N-2层函数...
递归最简单原理 程序本身自己调用自己称之为递归,类似于俄罗斯套娃,体现在代码中:用户执行函数,而函数里又在执行函数本身,相当于写了一个死循环函数,一般都需要用一个判断来决定递归深度
#!/usr/bin/env python# -*- coding:utf-8 -*-def f(a):   #自定义函数    f(a)    #再次执行本身函数f(1) #执行函数,触发函数循环

用递归写一个斐波那契数列,0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987 
斐波那契数列每前两位相加等于第3位
#!/usr/bin/env python# -*- coding:utf-8 -*-#用递归写一个斐波那契数列def f1(i, a, b):    #自定义函数接收参数传值    print(a)    #打印每次递归的a    if i == 5:  #判断每次递归的i是否等于5        return  #如果i等于5就return返回,返回没写返回值就什么都不返回,只是结束函数代码块终止递归    c = a + b   #将接收到的a加以b重新赋值给c    r = f1(i + 1, b, c) #将接收到的i加以1,接收到的b,新赋值给c,当做参数在次执行传入函数本身进行递归f1(1, 0, 1) #调用执行函数

 
只取一个递归次数的斐波那契数,也就是取递归某一次的斐波那契数
#!/usr/bin/env python# -*- coding:utf-8 -*-#只取一个递归次数的斐波那契数,也就是取递归某一次的斐波那契数def f1(i, a, b):  #自定义函数接收参数传值    if i == 5:   #判断每次递归的i是否等于5        return a   #如果i等于5就return返回a,结束函数代码块终止递归    c = a + b       #将接收到的a加以b重新赋值给c    r = f1(i + 1, b, c) #将接收到的i加以1,接收到的b,新赋值给c,当做参数在次执行传入函数本身进行递归    return r   #接收满足条件后返回的a并且递归方式返回给上一次执行函数sf = f1(1, 0, 1) #调用执行函数print(sf)#打印出结果  3
 

 
 

转载地址:http://fjnea.baihongyu.com/

你可能感兴趣的文章
JS FormData对象
查看>>
【撸啊撸 Docker】搭建 MySQL 数据库
查看>>
Quartz的cron表达式
查看>>
spark streaming 处理空batch
查看>>
搜索会页面跳转
查看>>
设计模式----建造者模式UML和实现代码
查看>>
企业大型多媒体视频会议源码 服务器端 客户端VC
查看>>
percent 简介
查看>>
Oracle Listener 动态注册 与 静态注册
查看>>
软考网工
查看>>
测RP
查看>>
JS中apply函数
查看>>
Cacls and Icacls
查看>>
从腾讯的一道笔试题说起
查看>>
服务器连接不通或者网络异常怎么办?
查看>>
Dubbo 整合 Pinpoint 做分布式服务请求跟踪
查看>>
Discuz x3.2前台GET型SQL注入漏洞(绕过全局WAF)
查看>>
superagent爬虫整页面乱码
查看>>
帖子列表,请大家选择自己喜欢的汇总贴分享
查看>>
java工程师用spring boot和web3j构建以太坊区块链应用
查看>>