学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学习交流、资源共享群:563626388 QQ
原创粉丝点击