我也是初学者,看完答案才写出代码,我当时是这么理解的:因为在开始目录下的文件夹中可能还是找不到目标 ...
谢谢 larryho 发表于 2019-8-10 14:05
我自己写的代码和小甲鱼的答案不一样,但结果是一样的,我是这么写的:
def find_target(path, target): ...
这个好理解,甲鱼的那个如果已经执行到最底层,那么返回上一级在执行那不又到了最底层,无法理解 cys0821 发表于 2019-8-12 01:46
明白了,调用递归函数后,即使里面改变了当前工作目录,外面的函数也受影响,整个函数的工作目录都变了(和 ...
你说的太对了,我看了你的回答之后才明白了为什么要返回上一级目录,十分感谢 larryho 发表于 2019-8-10 14:05
我自己写的代码和小甲鱼的答案不一样,但结果是一样的,我是这么写的:
def find_target(path, target): ...
挺好的方法! 感觉更容易理解些! cys0821 发表于 2019-8-12 01:46
明白了,调用递归函数后,即使里面改变了当前工作目录,外面的函数也受影响,整个函数的工作目录都变了(和 ...
我也发现了:虽然能找到文件,都是打印出的目录都变成了最里层那个文件的目录! AmosAlbert 发表于 2019-8-1 07:38
搜索算法的一种,回溯法,顾名思义要回退,回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优 ...
有点共鸣!
我感觉python执行的时候好像是优先去对目录里文件夹进行了搜索,一直往里试探,直到最里层;然后再返回去对上层目录依次判断文件名。 看上去就好像优先进行了递归操作一样。 首先我可以告诉你, 这句会被运行, 因为顶上的函数调用总会结束(不然就无限递归了), 所以还是会继续执行的
你可以试试改下目录结构, 改的奇怪一点, 看有没有区别 因为工作目录在调用过程中被改变了,如果不用os.chdir(os.pardir)改变工作目录为上一层目录的话,那么被调用目录的上一层目录内的文件(即与当前被调用目录的同级目录)就不能被访问,(如D:A\\B被调用,那么如果不用os.chdir(os.pardir)得话,就不能回到工作目录D:A,也就不能继续操作D:A\\C、D:A\\D。)
页:
1
[2]