递归图解:
执行简单的递归:
def go(num):
if num==0:
return
else:
print("head",num)
go(num-1)
print("foot",num)
go(5)
结果:
2.递归加法:
def go(num):
if num==0:
return 0
else:
return num+go(num-1)
print(go(5))
结果:
3.台阶问题:
有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。
def go(num):
if num==1:
return 1
elif num==2:
return 2
else:
return go(num-1)+go(num-2)
print(go(10))
结果:
4.遍历文件夹:
import os
def getall(path):
fillist=os.listdir(path)
for filename in fillist:
filepath=os.path.join(path,filename)
if os.path.isdir(filepath):
print("文件夹",filename)
getall(filepath)
else:
print("文件",filename)
getall(r"D:\桌面\代码")
结果:
加强版:增加层次感
import os
def getall(path,tree):
tree+=" "
fillist=os.listdir(path)
for filename in fillist:
filepath=os.path.join(path,filename)
if os.path.isdir(filepath):
print(tree,"文件夹",filename)
getall(filepath,tree)
else:
print(tree,"文件",filename)
getall(r"D:\桌面\代码","")
结果: