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

大同住房和城乡和建设网站网站建设和咨询服务合同

大同住房和城乡和建设网站,网站建设和咨询服务合同,wordpress蜜蜂采集,游戏网站模板免费下载函数式编程:允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 1.高阶函数 一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数 abs(-10) 是函数调用 abs是函数本身 abs函数名其实是一个变量名 变量可以…

函数式编程:允许把函数本身作为参数传入另一个函数,还允许返回一个函数!

1.高阶函数

一个函数可以接收另一个函数作为参数,这种函数称之为高阶函数

abs(-10)  是函数调用   abs是函数本身   abs函数名其实是一个变量名

变量可以指向函数,函数名也是变量名

map()

map(func,seq)函数接收两个参数,一个是函数,一个是Iterable(可迭代对象,序列)map将传入的函数func()依次作用到序列seq的每个元素,并把结果作为新的Iterator(迭代器)返回,之后可转为lis或其他类型t输出。

1 #!/usr/bin/python3
2 
3 def f(x):
4     return x*x
5 
6 r = map(f, [ 1, 2, 3, 4, 5, 6 ])
7 print(list(r))   
8 #由于结果r是Iterator(惰性序列),因此通过list()函数计算整个序列

reduce()

 reduce(func,seq)把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算,

意即一次取序列两个元素放到函数,函数结果和下一个函数结果(取下两个元素放到函数得到的函数结果)相加,依次类推。

1 #!/usr/bin/python3
2 from functools import reduce
3 
4 def f(x,y):
5     return x+y
6 
7 r = reduce(f, [ 1, 2, 3, 4, 5, 6 ])
8 print(r)

filter()

filter(func,seq)函数用于过滤序列,调用一个布尔函数func()来迭代遍历每个seq中的元素,返回一个使func返回值为True的元素的序列

map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

筛选回文      回数是指从左向右读和从右向左读都是一样的数

1 #!/usr/bin/python3
2 
3 def is_palindrone(n):
4     return str(n) == str(n)[::-1]  #[::-1]是倒切 从右往左
5 
6 print( list( filter( is_palindrone, range(11,200) ) ) )

sorted()

排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。

sorted(seq,key=func)函数也是一个高阶函数,它可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序

 不是同一种类型数据相比较,key决定比较大小的标准:

匿名函数与lambda

lambda表达式返回可调用的函数对象

1 def add(x,y):return x+y
2 sum1 = add(2,3)
3 #等价于
4 add = lambda x,y:x+y
5 add(2,3)

 Python简单的句法限制了lambda函数的定义体只能使用纯表达式。即不能赋值,也不能使用while和try等Python语句

除了作为参数传给高阶函数之外,Python很少使用匿名函数

2.返回函数

把函数作为结果返回

 1 #!/usr/bin/python32 3 def lazy_sum(*args):4     def sum():5     #闭包   sum可以引用外部函数lazy_sum的参数和局部变量6         ax = 07         for n in args:8             ax = ax+n9         return ax
10     return sum
11     
12 f = lazy_sum(1, 3, 5, 7, 9)  #不需要立即求和,而是在后面的代码中根据需要计算
13 #返回的函数并没有立刻执行,而是直到调用了f()才执行
14 print(f())

返回值与函数类型

 返回的对象数目    Python实际返回的对象类型

  0            None

  1            object

  >1             tuple

 3.装饰器

不修改原函数的定义,在代码运行期间动态增加功能的方式(如在调用前后自动打印日志,但又不修改函数的定义),称之为“装饰器”(Decorator),装饰器就是函数,借助@调用

 1 #!/usr/bin/python32 3 def log(func):4     def printInfo(*arge, **kw):   #*不定长参数  **关键字参数5         print('call %s()' % func.__name__) #在调用func之前打印一些信息6         return func(*arge, **kw)7     return printInfo8 9 #log是一个装饰器,接收函数返回函数,借助@语法把装饰器置于函数的定义外
10 @log    #相当于执行了  now = log(now) 
11 def now():
12     print('2019-4-20')
13 
14 #现在同名now()指向了新的函数,调用now()返log()中的printInfo()函数
15 print(now())

4.偏函数

当函数参数过多,需简化时,使用 functools.partial() 可以创建一个新的函数,这个函数可以固定住原函数的部分参数

1 #!/usr/bin/python3
2 import functools
3 
4 int2 = functools.partial(int, base = 2)
5 print(int2('1000000'))  #现在只需传一个序列, 不需传指定的进制

http://www.yayakq.cn/news/666347/

相关文章:

  • 云建站源码宁波网站建设电话
  • 天猫网站左侧导航用js怎么做网站安全性怎么做
  • 沂南做网站如何利用互联网挣钱
  • 深圳公司建立网站做系统的网站好
  • 做网站接项目网站的特征包括
  • 网站建设方案策划wordpress 商务模板
  • 邓州市建设局网站关于网站空间
  • 做教育类网站公司产品网站应该怎么做
  • 虚拟空间网站回收池有什么作用对网站建设课程的心得体会
  • 做响应式网站哪家好杭州金融网站建设
  • 闵行工程建设网站做百度网站需要钱吗
  • 如何利用源码做网站深圳企业建网站公司
  • 福州网站建设熊掌号怎么做简易手机网站
  • 崇明建设镇虹桥村网站深圳做h5网站的公司
  • 域名对网站的好处网站建设需准备什么软件
  • 怎么做网站frontpage深圳seo秘籍
  • 长春火车站有几个现在网站都是拿什么软件做的
  • 怎么 给自己的网站做优化呢免费网站优化
  • 西安制作网站公司深圳跑网约车怎么样
  • 网站界面设计图片敬请期待英语
  • 做网站一定要域名嘛泰安电视台在线直播
  • 网页设计与网站建设docx手机哪里可以做视频网站
  • 只放一个图片做网站阿里云虚拟主机可以做几个网站吗
  • 国内外公司网站差异下载的网站模板怎么修改
  • 大气自适应网站源码湖南建设人力
  • 长春网站公司哪家好软件开发是什么职业
  • 网站版块下载今天的新闻 最新消息
  • 购物网站建设计划书惠州seo外包服务
  • 手机版网站案例护肤品网站制作 网新科技
  • 爱站网长尾关键词挖掘汕头房地产网