Python递归函数¶
所谓递归就是在函数内部调用自己的函数被称之为递归,一般递归函数都有终止条件,采用的是后入先出的压栈数据结构。
阶乘函数 n!
def factorial(n):
if n == 1:
return 1
return n * factorial(n - 1)
斐波那契数列 1, 1, 2, 3, 5, 8...
def fibonacci(n):
if n < 2:
return n
return fibonacci(n - 2) + fibonacci(n - 1)
从递归函数谈
os.walk()
os.listdir()
os.mkdir()
os.makedirs()
os.rmdir()
os.removedirs()
copy.copy()
copy.deepcopy()
深浅拷贝
从递归函数谈reduce
os.listdir递归查找文件
children递归查找filecache
斐波拉契数列 1 1 2 3 5 8
def fibonacci(num):
if isinstance(num, int):
if num <= 0:
return 0
elif num == 1:
return 1
else:
return fibonacci(num - 1) + fibonacci(num - 2)
else:
raise ValueError("The input number error!")
def factorial(number):
if not isinstance(number, int) or number <= 0:
return
result = 1
for n in range(1, number + 1)
result *= n
return result
factorial(100)
def fact(number):
if number == 1:
return number
return number * fact(number - 1)
# os.walk()
import os
from pprint import pprint
def walkFolders(folderPath):
subFileList = []
for subFileName in os.listdir(folderPath):
subPath = os.path.join(folderPath, subFileName)
if os.path.isfile(subPath):
subFile = {"type": "file", "name": subFileName}
subFileList.append(subFile)
else:
subFolder = {"type": "folder", "name": subFileName, "subFiles": walkFolders(subPath)}
subFileList.append(subFolder)
return subFileList