python基础4,,内容概要:一、递归递
python基础4,,内容概要:一、递归递
内容概要:
一、递归 |
递归就是函数本身调用自己,直到满足指定条件之后一层层退出函数
递归特性:
必须有一个明确的结束条件每次进入更深一层递归时,问题规模相比上次递归都应有所减少递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)示列1:求10!的值。
1 #方法一递归实现 2 #/usr/bin/env python 3 # -*- coding:utf-8 -*- 4 #Author:W-D 5 def sumn(n): 6 if n<=2:#递归结束条件 7 return n 8 else: 9 return (n * sumn(n-1))#调用函数本身10 print(sumn(10))11 结果:12 362880013 14 方法二:for循环实现15 a=116 for i in range(1,11):17 a=a*i18 print(a)19 结果:20 3628800
示列二:使用递归的方式来生成斐波那契数列(斐波那契数列就是前面给两个数相加得到后面一个数,依次往后)
1 #/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #Author:W-D 4 def feola(n1,n2): 5 n3=n1+n2 6 if n1>500:#结束条件为数大于500 7 return 8 print("{}".format(n1))#打印值 9 feola(n2,n3)#自身调用10 feola(0,1)11 结果:12 013 114 115 216 317 518 819 1320 2121 3422 5523 8924 14425 23326 377View Code
二、匿名函数lambda |
匿名函数,顾名思义就是不需要显示的定义函数名的函数,但是在语法上受限于一个表达式。
语法:
1 函数名=lambda 参数:代码
示列:
1 #/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #Author:W-D 4 f=lambda x,y:x+y#匿名函数表达式 5 print(f(3,2))#调用 6 结果: 7 5 8 9 #换个姿势用普通方式定义10 def my_add(x,y):11 return x+y12 print(my_add(3,2))#调用13 结果:14 5
python基础4
评论关闭