学python(01)——一个小白关于递归的理解
来源:互联网 发布:vscode typings文件 编辑:程序博客网 时间:2024/06/06 03:57
我从一个IT的小白,到现在已经算是入门有十天的时间了。
在学习一开始的时候,老师曾跟我们说过,递归函数是一个比较重要的知识点,也是新手很容易迷失的地方,然而我在真正的学习递归的时候,发现并没有那么的难,今天我把我所理解的递归写出来,然后希望大家可以看一下,如果有什么缺失或者错误的地方,希望大家还能够指出。(毕竟我半个月前还是一个小白)
def num1 (no1):
print(no1) #a过程
if num1 > 0:
num1(no1 - 1)#b过程
else :
print “到头了”#c过程
print (no1)#d过程
num1(3)
跟兄弟连Python学习交流、资源共享群:563626388 QQ
运行函数,此时no1 =3 执行开始运行函数num1(3),上下结构运行函a3过程,打印出3,然后,遇见分支。
因为3>0,所以此时应该运行num1(2),此时num1(3)函数中的d3过程尚未执行,等待num1(2)运行完再执行。运行num1(2),到了a2过程,打印出2,然后再次遇见分支
因为2>0,所以此时应该运行num1(1),此时num1(2)函数中的d2过程尚未执行,等待num1(1)运行完再执行。运行num1(1),到了a1过程,打印出1,然后又一次遇见分支
因为1>0,所以此时应该运行num1(0),此时num1(1)函数中的d1过程尚未执行,等待num1(0)运行完再执行。运行num1(0),到了a0过程,打印出0,然后还是遇见分支。
此时因为 0 = 0,所以运行c过程。打印“到头了”,此时num1(0)函数分支结束,向下运行打印出0,num1(0)过程执行完毕;此时num1(1)中的d1过程等到了num1(0)函数执行完毕,向下运行,打印出1,,num1(1)函数执行完毕;此时num1(2)等到了num1(1)函数执行完毕,向下运行num1(2)函数,打印出2;此时num1(3)函数等到了num1(2)函数执行完毕,打印出3,num1(3)函数执行完。
此时整个函数执行完毕,最终结果如下
3
2
1
0
到头了
0
1
2
3
以上内容就是我对递归的理解,在以后的学习过程中,如果遇见更新或者更准确的解释,我会随时来更新的内容,希望能看到博客的前辈对我稚嫩的理解给与一丝帮助。
- 学python(01)——一个小白关于递归的理解
- 菜鸟学python(01)—— 汉诺塔递归 理解
- 关于Python递归案例——汉诺塔的理解
- 学python(02)——关于循环的经典试题理解
- 学Python(2)—递归
- 关于图的一个小递归
- 0基础学Python(2) 说一说自己对递归函数的理解
- 关于递归的理解
- 关于递归的理解
- python一个关于贴吧的小爬虫(一)
- python一个关于贴吧的小爬虫(二)
- python一个关于贴吧的小爬虫(三)
- [零基础学python]关于循环的小伎俩
- 递归(以及几个关于递归的小例子)
- 一起来学信息安全知识(1)——一个小故事的大道理
- 再学java基础(9)一个 递归 的树形。
- 再学java基础(9)一个 递归 的树形。
- 关于对递归的理解
- LeetCode-022 Generate Parentheses
- Dijkstra算法--邻接表存储+堆优化
- 几款抄板软件的比较
- 使用vue-cli没有'dev-server.js'以及'dev-client.js'文件
- 压测netty框架,返回少量java.net.ConnectException:Connection timed out,优化代码
- 学python(01)——一个小白关于递归的理解
- rancher下的kubernetes之二:安装rancher和kubernetes
- JAVA的特点
- Android数据库Sqlite的基本用法及升级策略
- 红黑树
- 用栈实现表达式的求值(iOS计算器的实现)
- 《Effective Java》读后感(一)
- 状态机(二):Verilog状态机实现
- Solve Kafka"Failed to send messages after 3 tries"