一、递归函数
1、递归函数概念
直接或间接的调用自身的函数,称为递归函数。每调用一次自身,相当于复制一份该函数,只不过参数有变化,参数的变化,就是重要的结束条件。
2、递归函数实例
#####递归函数#### ##1、普通实现:计算n!=1*2*3*4*5*6*...*n n=int(input('普通实现阶乘,请输入n的值:')) result=1 i=1 while i<=n: result=result*i i+=1 print('普通实现阶乘的结果是:',result) ##2、递归实现:计算n!=1*2*3*4*5*6*...*n def test(n): if n==1: return 1 return n*test(n-1) #递归调用函数本身 while True: n=int(input('递归实现阶乘,请输入n的值:')) print('递归实现阶乘的结果是:',test(n)) if n>50: break #3、普通实现输出斐波那契数列 def feibo(n): a,b=0,1 c=[] while n>0: c.append(b) a,b=b,a+b n-=1 print(c) feibo(int(input('普通实现---请输入要输出数列的个数:'))) #4、递归实现输出斐波那契数列 def feibo1(n): if n<=1: return n elif n==2: return 1 return (feibo1(n-1)+feibo1(n-2)) n=int(input('递归实现---请输入要输出数列的个数:')) a=[feibo1(i) for i in range(1,n+1)] print(a)
二、闭包
1、闭包的定义
2、代码实例
#####闭包##### def outer(num): #外部函数,num为外函数的临时变量 def inner(num_in): #内部函数,若要在内部函数中修改外部函数的临时变量num,可以用nonlocal关键字声明一个变量num, 表示这个变量不是局部变量空间的变量,需要向上一层变量空间找这个变量 print('inner函数的局部变量--num_in is %d'%num_in) return num+num_in #在内部函数中用到了外函数的临时变量num return inner #外函数的返回值是内函数的引用 a=outer(20) #调用外函数传入参数,并创建内函数,并把内函数的引用返回给了a #a(200)==inner(200) #a存储了外函数的返回值,也就是内函数的引用a(200)相当于inner(200),即:num_in=200 print('返回内外部函数的计算结果:',a(200))
三、装饰器
标签:闭包,200,函数,递归函数,python,----,num,inner From: https://www.cnblogs.com/geqiandeqingmu/p/14621725.html