5.Python函数高级
有名函数
多次使用,会重复调用
def run(x,y):print(x,y)return x,y
run(1,2)
匿名函数
1 匿名函数:就是没有名字的函数
2 为何要用:
用于仅仅临时使用一次的场景,没有重复使用的需求
匿名函数的定义
print(lambda x, y: x + y)
表达式
(lambda x, y: print(x + y))(1, 2)
匿名函数一般和max,min,sorted连用
salaries= {'xialuo':3000000,'xishi':30000,'dahai':3000}def func(name):return(salaries[name]#比较value值
#求最大值
print(max(salaries,key=lambda name:salaries[name]))
#求最小值
print(min(salaries,key=lambda name:salaries[name]))#反序
print(sorted(salaies,key=lambda name:salaries[name],reverse=True))
#正序
print(sorted(salaies,key=lambda name:salaries[name],reverse=False))
递归函数
1.什么是递归函数
函数的递归调用是函数嵌套调用的一种特殊形式,在调用一个函数的过程中又直接或者间接地调用该函数本身,称之为函数的递归调用
递归死循环是没有意义的
递归调用必须有两个明确的阶段:
1. 回溯: 一次次递归调用下去,说白了就一个重复的过程,
但需要注意的是每一次重复问题的规模都应该有所减少,
直到逼近一个最终的结果,即回溯阶段一定要有一个明确的结束条件
2. 递推: 往回一层一层推算出结果
递归是函数的定义里面嵌套函数的调用
*****递归与循环的区别,循环每一次都要判断,需要考虑多少次
而递归只需要确定结束条件就行,按照规律进行重复调用,不需要考虑次数
第五个人年龄为第4个人加2岁
def age(n):if n ==1:return 18if n>1:return age(n-1)+2
print(age(5))
循环取值
L = [1,[2,[3,[4,[5,[6,[7,[8,[9,]]]]]]]]]def search(L):for n in L:# print(n)if type(n) is not list:print('我是数字%s'%n)else:search(n)
search(L)
闭包函数
闭包
闭指的是:该函数是一个内部函数
包指的是:指的是该内部的函数名字在外部被引用
def outer(x,y):def func():print(x+y)return func#每次都是传入同样的参数
func1=outer(3,2)
func1()
func1()
func1()
装饰器
装饰器就是一个特殊的闭包函数
1、什么是装饰器(就是一个函数,只不过这个函数不是给自己使用的,是给其他函数添加功能的)
器指的是工具,而程序中的函数就具备某一功能的工具
装饰指的是为被装饰器对象添加额外功能
2、为什么要用装饰器
软件的维护应该遵循开放封闭原则
开放封闭原则指的是:
软件一旦上线运行后对修改源代码是封闭的,对扩展功能的是开放的
这就用到了装饰器
装饰器的实现必须遵循两大原则:
1、不修改被装饰对象的源代码(人的原来的性格,生活方式)
2、不修改被装饰对象的调用方式(人的原来的外貌,名字)
实例
name='大海'
#装饰器
def decorate(func): #func等下传入rundef new_func(name):#run(name) 的 nameprint("装饰前面的代码")func(name)print("装饰后面的代码")return new_func#被装饰函数
@decorate
def run(name):print('=================')print('我是%s' %name)#运行装饰器
@decorate等价于run = decorate(run)
run = decorate(run)
run(name)
5.Python函数高级相关推荐
- python函数高级话题
python函数高级话题 python函数高级话题 递归函数 匿名函数:lambda lambda表达式 高阶函数 python 中常见的高阶函数 (1)filter (2)map (3)reduce ...
- python pow和**_「Python学习笔记」Python函数高级应用
Python, 函数本身也是一个对象函数既可以赋值,也可以用作其他函数的参数,还可作为其他函数的返回值. 使用函数变量 Python的函数也是一种值:所有函数都是function对象,这意味着可以把函 ...
- python函数高级运用
一.装饰器 1.1 闭包函数用法 # 需求: # 执行一个函数前需要认证是否登录,如果登录则不需再登录. # 只认证一次,后续操作无需认证 # 要求认证使用闭包函数用法 # 闭包函数 = 函数嵌套 + ...
- doraemon的python 函数高级应用
5.6函数小高级 5.6.1函数名可以当做变量来用 def func(): print(123)v1 = funcv1() def func(): print(123) def bar(): pri ...
- Python函数(函数定义、函数调用)用法详解
函数 函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,不需要编写大量重复的代码. 函数可以提前保存起来,并给它起一个独一无二的名字,只要知道它的名字就能使用这段代码.函数还可以接 ...
- python函数第二次运行报错_Python学习笔记2-函数、高级特性
函数 调用函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数 >>> abs(100) 100 >>> abs(-20) 20 ...
- python函数+定义+调用+多返回值+匿名函数+lambda+高级函数(reduce、map、filter)
python函数+定义+调用+多返回值+匿名函数+lambda+高级函数(reduce.map.filter) Python 中函数的应用非常广泛,比如 input() .print().range( ...
- python的高级函数_Python的高级函数
Python的高级函数 1. map函数 map(func, *itertables) 对itertables中的每个元素使用func,当最短的itertable结束时便停止.map可以传入多个ite ...
- Python基础-16 函数高级(续)
文章目录 十六.函数高级(续) 8. 函数返回多个值 9. 函数嵌套调用及过程 - 函数嵌套 - nonlocal 关键字 10. 递归函数的调用及过程(了解) 1. 系统编程相关 - pass - ...
最新文章
- 在线实时大数据平台Storm单机部署
- 选择屏幕设置默认日期
- 如果测试你的MongoDB应用升级?
- DevToys - 开发人员的瑞士军刀
- 区间数多属性决策matlab,区间数多属性决策的改进理想解法
- MATLAB2016打开mat格式图片
- ROS学习笔记5(理解ROS节点)
- JavaScript 详解:为什么写好的代码非常重要
- ModuleNotFoundError: No module named ‘librosa‘
- PL2303 Windows8.1驱动的问题
- Navicat 数据库可视化工具远程连接MySQL及基本操作
- html js实现省市区联动调节下拉框菜单
- Cloudflare DDNS梅林插件代码
- 【备忘】【No5】微信公众平台开发入门到实战开发视频教程(Java+PHP)
- Timeline调用实质
- 微软C++团队将出席ACCU 2021
- 520 钻石争霸赛 7-2 真的恭喜你 (10分)
- 网络平台做用户实名认证的好处
- [转载]Shell十三问(入门与提高)
- 源码阅读技巧总结-Android
热门文章
- entsel约束条件lisp_autolisp函数
- 大数据在互联网经济发展中的应用
- 小程序之坑一TypeError: this.setData is not a function
- [学习笔记]UserInterface/Layouts
- UG二次开发GRIP给尺寸增加*
- 常用Xilinx Alveo 技术文档资源列表(全中文)
- java 播放器开发 dat_dat格式用什么播放器 JAVA中文件的读写 I/O 输入输出流(3)
- Pig下载与安装与使用
- 微型计算机控制技术 王新,出版教材和专著 - 教材专著-建设成果 - 安全工程国家级实验教学示范中心(河南理工大学)...
- GDB调试CoreDump文件