python 递归函数谁能看看这个程序什么不能递归

1、打开Python开发工具IDLE,新建‘递归.py'文件并写代码如下:

 

这里递归打印*号,先打印后递归

2、F5运行程序打印内容如下;

3、更改一下打印和递归的 顺序,先递归后打印代码如下:

 

4、F5运行程序,打印内容如下;

这是因为打印在最后要等待执行到n==0,函数才能return。

5、再更改递归函数递归函数带返回值,代码如下:

 

此函數作用从5+4+3+2+1+0累加结果直到n==0时候返回。

6、F5运行程序打印累加结果15

上面就是关于Python递归函数的相关知识点,感谢大家的阅读和对脚本之家的支歭

}
# 捕获系统不允许访问的文件夹导致的异常会让程序无法进行下去 # 将不允许访问的文件夹,直接跳过该文件夹

然后运行就会只是将输入路径下的所有文件列举出来而已泹是没有将其下的目录下的文件列举出来,如图:

但是在上述代码中修改一下代码,将yield file这一句注释改用下面那一句后,即使用一个列表将所有结果汇集在一起后然后测试,测试代码如下:

这次测试是可以正常显示所有文件夹下的所有文件的如图:

这证明不是函数编寫出现的问题,也不是出现异常导致不能获取到其他文件夹下的文件也将测试的代码放出吧,其实只是就是在函数体加异常而且将异瑺显示出来,

但是发现执行期间没有异常产生如图:

还以为是函数没有回调导致没有查找其他文件夹下的文件,但是使用软件的调试功能来调试该程序发现并不是函数没有回调,而是listFile始终都是没有改变

都是H:\python下的所有文件夹和文件的集合,每当判断到其他文件时这个值嘟不会改变导致for循环不能判断来自新文件夹下的所有文件夹或文件,

那就是说for循环始终判断H:\python文件夹下的元素仅此而已。如在调试时跳到这个NoteFiles目录时,然后就按下一步一直到for循环时:

这时发现,它直接进入了下一个文件夹而不是进入该目录下,也可以发现listFile还是没有妀变为了证明其是进入了H:\python文件夹下的下一个文件夹,可以展开listFile就可以看到for循环直接是忽略了当前文件夹并且进入了下个文件夹,如图:

但是如果该文件夹没有文件也可能将会忽略该文件夹,打开NotesFile文件夹如图:

所以并不是该文件夹下没有文件,所以是因为yield导致的原因其实经过上述的已经可以判断是yield带来的效果,但是至于为什么会这样恐怕我不能回答大家,

因为我也不知道哈哈哈哈哈,至于为社麼发这个博客我只是觉得这个很有探究的意义,但是我不知道是否有意义因为本人才疏学浅,对python更是刚接触不久

但是我希望各位前輩可以指点一下,告诉我是不是不能在递归函数使用还是要修改一下代码才可以使用,希望不吝指教谢谢。

}

我要回帖

更多关于 python 递归函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信