首页 > 代码库 > 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 3628800 13 14 方法二:for循环实现 15 a=1 16 for i in range(1,11): 17 a=a*i 18 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 0 13 1 14 1 15 2 16 3 17 5 18 8 19 13 20 21 21 34 22 55 23 89 24 144 25 233 26 377
二、匿名函数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+y 12 print(my_add(3,2))#调用 13 结果: 14 5
python基础4
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。