当前位置: 首页 > 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.dnsts.com.cn/news/276006.html

相关文章:

  • 官方网站开发合同做电影网站如何不侵权
  • 开发技术网站开发技术软件app下载大全
  • 淄博网站建设公司哪家好上海模板网站建站
  • asp网站js悬浮窗怎么做网站为什么做微云的采集
  • 深圳营销型网站建设推广服务网站添加模块
  • 公司网站建设费wordpress特定主题
  • 免费招聘网站推荐中国那个公司的网站做的最好看
  • 南宁做网站推广的公司辽宁好的百度seo公司
  • dw做的网页在网站图片不显示网站开发与设计的参考文献
  • 网站建设方面存在的问题老薛主机用wordpress
  • dw如何建立网站科技公司做网站
  • 网站维护推广表网站建设公司的年报
  • 地方网站发展方向网页版qq聊天登录入口
  • 帮别人做网站赚钱吗教材资源网站建设
  • 诏安县城乡规划建设局网站公司网站购买主机
  • 网站表单功能制作手机wap网站工具
  • flash 学习网站南京 网站制作公司
  • 做网站这么做做网站成本
  • 制作企业网站页面实训项目wordpress 不同域名
  • me域名网站收录网站是怎么做的
  • 小说网站开发成本高校网站建设
  • 公司网站后台密码网页美工设计推荐
  • 全自动网站制作源码企业每年向工商网站做申报
  • 美橙极速建站系统企业网站营销的成功案例
  • 网站开发seo规范深圳营销型网站建设公司哪家好
  • wordpress 网站的占有网络舆情监测分析系统
  • 做网站时数据库要创建几个表安阳建筑设计
  • 网站系统代码怎么用wordpress sql过滤
  • 网站建站网站jp586 vip网络营销建设
  • 专为中年人做的的婚恋网站创新建设资金网站