一、使用递归的准则
1、函数自己调用自己,且规模逐渐缩小
2、要有递归终止条件,不然就会无限调用
二、经典递归函数
#求n的阶乘 def fac(n): if n == 0 or n == 1: #递归终止条件 return 1 else: #否则,缩小规模,再次调用自己 return n * fac(n-1)
三、统计文件夹中有多少个文件
def filenums(path1, count=0): #count中保存文件个数 list_path = os.listdir(path1) #取出当前目录下的所有文件和子文件夹 for path_tmp in list_path: fw = os.path.join(path1, path_tmp) #取出每个文件和子文件夹的绝对路径 if os.path.isfile(fw): #若是文件,则count+1 count += 1 elif os.path.isdir(fw):#若是文件夹,则把该文件夹和当前count作为输入,再次调用函数 count = filenums(fw, count) return count path = r'D:python_trainingday5f' print('该目录下的文件个数为:', filenums(path))
#将count定义为全局变量,作用和上一个程序相同 def filenums(path1): count = 0 list_path = os.listdir(path1) for path_tmp in list_path: fw = os.path.join(path1, path_tmp) if os.path.isfile(fw): count = count+1 elif os.path.isdir(fw): count = count + filenums(fw) return count