#递归函数
#函数内部,一个函数可以调用自身本身,这个函数就是递归函数。
def num(x): #第一步 return num_a(n,1) #第二部 def num_a(a,b): #与第二部对应,如果此时的num_a与上一步定义的函数不对应,则代码报错。 if a==1: #(最后一部判断)由于a==3,所以a==1不成立,直到a==1时才返回b,循环才结束。 return b return num_a(a-1,a*b)#此时循环结束,但是判断里的循环未结束。
#x等于3时
#num_a(3,1)
#num_a(2,3)
#num_a(1,6)
#返回num_a(a-1,a*b)值与上面对于num_a(a,b),a在不断减1,而b得出定义表达式的a*b相乘,直到a==1时,判断成立,return返回结束。
#所以答案为num_a(1,6),a==1,b==6
#此递归函数也和循环是等价的,但是他不依靠循环语句,只是本身咋不断调用函数,因此会发生栈溢出的问题。
学习内容来自廖俊峰的官方网站!
ps:本人python不是抄袭,而是学习篇>>>写的是本人学习的笔记,记录下来方便本人以后参考。
时间: 2024-11-05 20:37:08