笑星星 发表于 2021-11-1 17:31:12

为啥不一样

为什么两个程序输出不一样?

非凡 发表于 2021-11-1 17:59:30

你把代码复制出来吧,这看着好难受

非凡 发表于 2021-11-1 18:48:20

函数的
第一步会做判断,如果路径不存在的话,会先执行
mkdir(os.path.split(path))
print(path)
首先 split(path)作用是:
分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
import os
os.path.split(path)
Out:'D:\\food\\fruit'

然后将返回得到的’ 'D:\\food\\fruit'‘放回mkdir()函数里,
'D:\\food\\fruit'当然不存在啦,
然后得到'D:\\food\\放到mkdir()函数里
得到'D:',但‘D:’,自然是存在了的啦,所以就跳过,
然后就打印“D:\\food\\——创建'D:\\food\\
'D:\\food\\创建后,然后再打印:F:\\food\\fruit\\,创建F:\\food\\fruit\\
F:\\food\\fruit\\有了,就会打印F:\\food\\fruit\\apple,创建F:\\food\\fruit\\apple

应为有mkdir(os.path.split(path))这一步在,就会把路径一直递归,直到路径存在时,才会跳执行下面
打印:和 创建,

递归函数。。我这么说不知道你理解不?

笑星星 发表于 2021-11-1 22:39:11

看了十几遍,总算弄明白了,谢谢!递归太难了,以后换个题目我可能又不会了!谢谢你

Python初学者8号 发表于 2021-11-2 09:14:45

2021年了,还有新手不会截图,血压上来了,哈哈哈

笑星星 发表于 2021-11-3 22:40:26

没事,血压上来我可以帮你降!
页: [1]
查看完整版本: 为啥不一样