def digui(n):
if n==1: #设置一个出口用于当条件满足时结束,避免死循环
return 1
else:
result=n*digui(n-1)
return result #返回上一次的递归结果,用于下一次判断,以及有利于打印结果
print(digui(5))
#结果是5*digui(4)=5*4*digui(3)=5*4*3*digui(2)=5*4*3*2*digui(1)=120
#当n=1时返回的结果是1,所以digui(1)=1
递归是在函数内部调用自身,要设置一个出口,避免进入死循环。设置出口就是设置一个判断条件,当条件满足时结束循环。由于每次调用函数会在内存中开辟一个内存空间,所以递归会每调用一次自身多占用一点内存,如果循环次数过多会造成栈溢出,程序报错。