当前位置: 首页 > news >正文

淘宝优惠劵做网站模版网站建设没有图片

淘宝优惠劵做网站模版,网站建设没有图片,沈阳创新网站建设报价,区域网站怎么做文章目录 高阶函数lambda 表达式和匿名函数偏函数闭包map函数reduce函数filter 函数sorted函数 函数式编程主要学习#xff1a;高阶函数、闭包closure、匿名函数、偏函数#xff0c;map函数、reduce函数、filter函数、sorted函数 函数式编程是个很古老的概念#xff0c;最古… 文章目录 高阶函数lambda 表达式和匿名函数偏函数闭包map函数reduce函数filter 函数sorted函数 函数式编程主要学习高阶函数、闭包closure、匿名函数、偏函数map函数、reduce函数、filter函数、sorted函数 函数式编程是个很古老的概念最古老的函数式编程语言Lisp新出现的函数式编程语言比如ErlangScalaclojure等热门语言Python、java、JavaScript、C等增加了函数式编程的一些特性。 函数式编程在有些时候非常方便。 高阶函数 函数是一等公民可以赋值、可以作为参数传递、可以作为返回值。一个函数可以接收另一个函数作为参数就称之为高阶函数。 python内建的高阶函数有map reduce filter sorted def test():print(test function run!!)def test2(func,*args,**kwargs):print(test2 function run...)func(*args,**kwargs)def test03(a,b):print(ftest03,{a},{b})a test #test2(a) test2(test03,100,200)test2 function run… test03,100,200 lambda 表达式和匿名函数 lambda表达式可以用来声明匿名函数只允许包含一个表达式不能包含复杂语句。语法如下 lambda arg1,arg2,arg3,...:表达式arg1,arg2,arg3为函数的参数表达式相当于函数体。 f lambda a,b,c:abc print(f) f(1020,20,30) f(10,20,30) 偏函数 Python的functools模块提供了很多有用的功能其中一个就是偏函数Partialfunction)。要注意这里的偏函数和数学意义的偏函数不一样。 偏函数作用就是把一个函数某些参数固定住也就是设置默认值)返回一个新的函数调用这个新的函数会更简单。 举例如下: int()函数可以把字符串转换为整数当仅传入字符串时int0函数默认按十进制转换代码如下 print(int(12345))但int()函数还提供额外的base参数默认值为10。如果阐述base参数就可以做N进制转换。 print(转换为八进制 ,int(12345,base8)) print(转换为十六进制,int(12345,base16)) print(转换为十进制,int(12345,base10))转换为八进制 5349 转换为十六进制 74565 转换为十进制 12345 可以利用functools.partial创建偏函数 import functools int2functools.partial(int,base2)print(int2(1010101)) print(int2(1010101,base10))85 1010101 闭包 闭包的两部分函数本身、外部函数的局部变量 根据字面意思可以形象地把闭包理解为一个封闭的包裹这个包裹就是一个函数。当然还有函数内部对应的逻辑包裹里面的东西就是自由变量(外部函数的局部变量)自由变量可以随着包裹到处游荡。 局部变量:如果名称绑定再一个代码块中则为该代码块的局部变量除非声明为nonlocal或global 全局变量:如果模块绑定在模块层级则为全局变量 自由变量:如果变量在一个代码块中被使用但不是在其中定义则为自由变量闭包概念和第一个闭包程序 我们知道函数作用域是独立的、封闭的外部的执行环境是访问不了的但是闭包具有这个能力和权限。 闭包是一个函数只不过这个函数有超能力,可以访问到另一个函数的作用域。 闭包的特点存在内外层函数嵌套的情况内层函数应用了外层函数的变量或参数自由变量外层函数把内层的这个函数本身当做返回值进行返回。 def outer():print(outer)a3def inner():print(inner)nonlocal a # 闭包是由于函数内部使用了函数外部的变量这个函数对象不销毁则外部函数的局部变量也不会被销毁print(fa:{a})return innera outer()print(---------) a()outer inner a:3 闭包的作用 隐藏变量避免全局污染可以读取函数内部的变量 但是闭包使用不当导致变量不会被垃圾回收机制回收造成内存消耗也可能造成内存泄露的问题。 示例 使用全局变量实现变量自增但是污染了其他程序 a 10 def add():global aa 1print(a:,a)def print_ten():if a 10 :print(ten!!)else:print(全局变量a不等于10) add() add() add() add() print_ten() a: 11 a: 12 a: 13 a: 14 全局变量a不等于10 示例 未污染但是未实现自增 a 10 def add():a10a 1print(a:,a)def print_ten():if a 10 :print(ten!!)else:print(全局变量a不等于10) add() add() add() add() print_ten() a: 11 a: 11 a: 11 a: 11 ten!! 通过自由变量实现递增也不污染其他程序 a 10 def add():a10def incrment():nonlocal aa 1print(a:,a)return incrmentdef print_ten():if a 10 :print(ten!!)else:print(全局变量a不等于10) incrmentadd() incrment() incrment() incrment() print_ten()a: 11 a: 12 a: 13 ten!! 案例 用闭包实现不修改源码添加功能 def outfunc(func):def infuc():print(日志记录...)func()return infucdef fun1():print(使用功能1)def fun2():print(使用功能2)fun1outfunc(fun1) fun1()fun2outfunc(fun2) fun2() map函数 map()函数接收两组参数一个是函数一个是序列(可以传入多个序列)map将传入的函数依次作用到序列的每个元素并把结果作为新的list返回。 比如我们有一个函数f(x)x2要把这个函数作用在一个list [1,2,3,4,5,6,7,8,9]上就可以用map()实现如下: # 自己编写实现 def f(x):return x*x L[] for i in [1,2,3,4,5,6,7,8,9]:L.append(f(i)) print(L)# map实现 Lmap(lambda x:x*x,[1,2,3,4,5,6,7,8,9]) print(list(L)) # 或者 Lmap(f,[1,2,3,4,5,6,7,8,9]) print(list(L))[1, 4, 9, 16, 25, 36, 49, 64, 81] [1, 4, 9, 16, 25, 36, 49, 64, 81] [1, 4, 9, 16, 25, 36, 49, 64, 81] reduce函数 reduce位于 functools模块 reduce把一个函数作用在一个序L[x1, x2,x3...]上这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算其效果就是: reduce(f,[x1,x2,x3,x4]) f(f(f(x1,x2),x3),x4)示例 from functools import reducedef add(x,y):return xym[1,2,3,4,5,6,7,8,9,10] print(reduce(add, m)) ## 结果是55 filter 函数 内置函数flter() 用于过滤序列。filter()把传入的函数依次作用于每个元素然后根据返回值是True还是False决定保留还是丢弃该元素。true 保留false 丢弃 def is_odd(n):return n%21Lfilter(is_odd,[1,2,3,4,5,6]) print(list(L)) ## 结果是 [1, 3, 5]sorted函数 排序算法排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序排序的核心是比较两个元素的大小。 如果是数字我们可以直接比较 如果是自定义对象呢?直接比较数学上的大小是没有意义的因此比较的过程必须通过函数抽象出来。通常规定对于两个元素x和y如果认为xy则返回-1如果认为x y则返回0如果认为x y则返回1这样排序算法就不用关心具体的比较过程而是根据比较结果直接排序。 示例 sorted对list进行排序 sorter1 sorted([1,2,3,-1,-20,34]) print(sorter1 ) # 升序排序 sorted函数也是个高阶函数还可以接收一个key实现自定义排序 示例 自定义排序 sorter1 sorted([1,2,3,-1,-20,34]) print(sorter1 ) # 升序排序sorter2 sorted([1,2,3,-1,-20,34],keyabs) print(sorter2 ) # 绝对值排序sorter3 sorted([1,2,3,-1,-20,34],keyabs,reverseTrue) #绝对值排序反序 print(sorter3 )[-20, -1, 1, 2, 3, 34] [1, -1, 2, 3, -20, 34] [34, -20, 3, 2, 1, -1] def custom_sorted(st1,st2):if st1.agest2.age:return -1if st1.agest2.age:return 1return 0st1Stutent(13,zhangsan) st2Stutent(14,lisi) st3Stutent(15,wangwu) st4Stutent(12,zhaoliu) stdent_listsorted([st1,st2,st3,st4],keycmp_to_key(custom_sorted)) for stu in stdent_list:print(stu.name,stu.age)zhaoliu 12 zhangsan 13 lisi 14 wangwu 15
http://www.hkea.cn/news/14316424/

相关文章:

  • 网站图片缩略图在线支付的网站怎么做
  • 网站的标签怎么修改企业网站建设一般考虑哪些因素
  • 网站公司建设个服务号多少钱网站域名在哪里看
  • 颍东网站建设福建省住房和城乡建设厅网站首页
  • 工业设计网站哪家好给网站做外链要注意哪些
  • 怎么建设域名和网站专做美妆的视频网站
  • 网站的功能定位在线绘画网站
  • 同泰公司网站公司查询WordPress对象储存
  • 网站标题怎么做公众号涨粉
  • 山东省建设管理信息网站汝州网站建设
  • wordpress网站的配置文件天津做美缝的网站
  • 服装门户系统网站环保工程 技术支持 东莞网站建设
  • 关键词查询工具软件酒泉网站seo
  • ps做图下载网站有哪些网站建设 公司新闻
  • 建站公司哪家好网站开发的母的目的和意义.
  • 网站建设推广合同书专业精准网络营销推广
  • 健康资讯网站模板网站要什么软件做
  • 山东超越建设集团网站南昌网站建设
  • 深圳建企业网站什么叫网站建设四网合一
  • 可视化网站建设软件有哪些遵义网站建设90kj
  • 青岛黄岛区网站开发零用贷网站如何做
  • 黄骅贴吧招聘2022年seo sem论坛
  • 广州网站制作方法凡客建站
  • 荣添网站建设优化西安做营销型网站
  • 网站3级目录可以做导航分类么做游戏直播那个网站
  • 网站 开发逻辑网站建设应该有什么特点
  • 网站友情链接怎么样做公司管理
  • 成功的营销网站的例子考研培训班哪个机构比较好
  • 门户网站直接登录系统名师工作室网站建设建议
  • 深圳深圳网站建设重庆发布公众号