#案例:计算n的阶乘
#求n的阶乘
"""
n! = 1*2*3*...n
1! = 1
2! = 2*1 = 2*1!
3! = 3*2*1 = 3*2!
n! = n*(n-1)!
function = n *(function-1)
"""
#使用循环
# def calNum(num):
# i = 1
# result = 1
# while i <= num:
# result *= i #等价于result = result * i
# i += 1
# result = 1
# for i in range(1,num+1):
# result *= i
# return result
# print(calNum(5))
#使用递归
def calNum(num):
if num > 1:
result = num * calNum(num - 1)
else:
result = 1
return result
#调用函数
print(calNum(5))
#注意:不能出现死循环
递归遍历目录
import os
def getAllFileDir(path,sp=''): #path传入的路径
#获取当前目录下所有的文件和目录
fileList = os.listdir(path)
#处理每个文件直接的分隔符
sp += '-'
#获取所有的文件,如果是目录使用递归继续遍历,如果是文件直接打印
for fileName in fileList:
#获取文件的路径(用绝对路径)
fileAbsPath = os.path.join(path,fileName) #判断是否是路径
#判断哪些是目录
if os.path.isdir(fileAbsPath):
print(sp+'目录:',fileName)
#使用递归继续遍历
getAllFileDir(fileAbsPath,sp)
else: #文件直接打印
print(sp+'文本文件:',fileName)
#调用函数
getAllFileDir('C:\python课程大纲\python课程大纲')