Python——函数式编程、高阶函数及内置函数

函数式编程

一、不可变数据:不用变量保存状态不修改变量

二、第一类对象:函数即“变量”

1、函数名可以当做参数传递

2、返回值可以是函数名

三、尾调用优化(尾递归): 在函数的最后一步调用另外一个函数(最后一行不一定是函数的最后一步)

尾调用由于是函数的最后一步操作,不需要保留外层函数的调用记录,因为调用位置、内部变量等信息不会再用到了,只需要直接用内层函数的调用记录,取代外层函数的调用记录就可以了。

四、高阶函数

满足以下两个特性的任意一个即为高阶函数:

1、函数的传入参数是一个函数名

2、函数的返回值是一个函数名

四(1)map()函数:处理序列中的每个元素,得到的结果是一个“列表”,该“列表”元素个数及位置与原来一样。

map(xx;xx):第一个位置写处理逻辑,第二个位置为可迭代对象。

四(2)filter()函数:遍历序列中的每个元素,判断每个元素得到的布尔值,如果是True则留下来。

filter(xx;xx):第一个位置写处理逻辑,第二个位置为可迭代对象。

四(3)reduce()函数:处理一个序列,然后把序列进行合并操作。

先导入functools模块:

from functools import reduce

reduce(xx;xx;xx):第一个位置写处理逻辑,第二个位置为可迭代对象。第三个位置为初始值,默认不填

五、内置函数

1、abs():取绝对值

2、all():把括号内的序列每一个数进行布尔运算,全部为真才为真

3、any():把括号内的序列每一个数进行布尔运算,全部为假才为假,有一个真为真

4、bin():把十进制转二进制

5、bool():进行布尔运算,空、None、0都为False,其余都为True

6、bytes():把字符串转化为字节的形式(要注明编码形式)

name = “你好”

例如:print(byte(name,encoding=“utf—8”))

解码:

例如:print(byte(name,encoding=“utf—8”).decode(“utf—8”))

7、chr():输入ascii码表对应的序号显示出对应的字符

8、ord():输入字符显示出对应的ascii码表对应的序号

9、dir():打印某对象里所有的对应方法

10、divmod():得到除法运算的商跟余数

11、eval():1、把字符串中的数据结构提取出来;2、把字符串中的表达式进行运算

例一:

12、hash():进行哈希运算。(数据类型中包含两类,一类为可哈希,另一类为不可哈希;可哈希的为不可变类型)

特性一:不论传入的参数有多长,最后得出的结果长度都是固定的。

特性二:不能根据哈希值反推出原先的参数

13、 hex():十进制转16进制

14、oct():十进制转8进制.

15、isinstance():判断xx是否为xx的实例

print(isinstance(1,int)) 结果为:true

print(isinstance(“abc”,str)) 结果为:true

16、globals():所有全局变量

print(globals()):打印所有全局变量

17、locals():局部变量

print(locals()):打印本层的局部变量

18、max():最大值;min():最小值

举例子:

dic={‘age1’:18,‘age’:20}

print(max(dic)) // 默认比较的是字典的key

如果要对应value,则:

dic={‘age1’:18,‘age’:20}

print(max(dic.values)) //此时显示的只有values

如果想要显示key跟value,比较的是value,则:

dic={‘age1’:18,‘age’:20}

print(zip(max(dic.values(),dic.keys())))

其他用法:

19、zip():将可迭代对象作为参数,像拉链一样一一对应起来

例如: print(list(zip((‘a’,‘b’,),(1,2))))

显示:[(‘a’,1),(‘b’,2)]

其他用法:

20、pow():次方运算

例如:

print(pow(2,3)) //2的3次方

print(pow(2,3,3)) //2的3次方对3取余

21、reversed():列表顺序颠倒

22、round():四舍五入

round(3.5) //四舍五入,输出为4

23、slice():切片

24、sorted():排序(本质就是比大小),不同类型之间无法排序

25、type():查看数据类型

26、sum():求和

27、vars(): 如果没有参数,直接调用vars,相当于调用locals();如果有一个参数,则查看某一个对象下面所有的方法,以字典的方式。

28、

import

():import导入不能包含字符串,会报错;

import

()导入可以包含字符串

如果是import导入,则:

import test

test.xx()

如果是’test’,则:

module_name=‘test’

m=

import

(module_name)

m.xx()

python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及相关推荐

  1. python函数求导_python怎么实现函数求导

    python实现函数求导的方法是:1.利用sympy库中的symbols方法传入x和y变量:2.利用sympy库中的diff函数传入需要求导的函数即可返回求导之后的结果. python利用sympy库 ...

  2. python函数求导_python构建计算图1——简单实现自动求导

    机器学习和深度学习中比较重要的内容便是计算图,主流的框架如tensorflow,pytorch都是以计算图为主要框架.而计算图的核心便是自动求导. 所谓自动求导,就是在表达式或者网络结构确定之时,其( ...

  3. es6 filter函数的用法_Python 函数式编程指北,不只是面向对象哦!超级详细!

    Python 函数式编程指北, 不只是面向对象哦 了解在Python中如何使用 lambda, map, filter 和 reduce 函数来转换数据结构 Photo by Markus Spisk ...

  4. python二元函数求导_Python二元算术运算常用方法解析

    在本文中,我想谈谈二元算术运算.具体来说,我想解读减法的工作原理:a - b.我故意选择了减法,因为它是不可交换的.这可以强调出操作顺序的重要性,与加法操作相比,你可能会在实现时误将 a 和 b 翻转 ...

  5. python二元函数求导_python实现GA求二元函数最大值(来自知乎)

    importmath, randomclassPopulation:#种群的设计 def __init__(self, size, chrom_size, cp, mp, gen_max):#种群信息 ...

  6. sigmoid函数求导与自然指数

    sigmoid函数求导与自然指数 在神经网络里经常使用sigmoid做激活函数,它的导数是怎么样求解呢?因为要使用它的导数来计算梯度下降. 这个过程如下: 1. sigmoid 函数:f(z) = 1 ...

  7. 高等数学期末总复习 DAY4. 利用莱布尼茨定理求高阶导 隐函数求导 对数求导法 参数函数求导 用导数求切线、法线 函数的微分

    DAY 4. 这世上总要有个明白人,懂得克制. 文章目录 DAY 4. 1. 利用莱布尼茨定理求高阶导 2.隐函数求导 3.对数求导 4.参数函数求导 5.用导数求切线.法线 6.函数的微分 1. 利 ...

  8. 二元函数对xy同时求导_高等数学期末总复习 DAY4. 利用莱布尼茨定理求高阶导 隐函数求导 对数求导法 参数函数求导等...

    DAY 4. 这世上总要有个明白人,懂得克制. DAY 4. 1. 利用莱布尼茨定理求高阶导 2.隐函数求导 3.对数求导 4.参数函数求导 5.用导数求切线.法线 6.函数的微分 1. 利用莱布尼茨 ...

  9. python编程求导数_面向对象编程 —— java实现函数求导

    首先声明一点,本文主要介绍的是面向对象(OO)的思想,顺便谈下函数式编程,而不是教你如何准确地.科学地用java求出函数在一点的导数. 一.引子 defd(f) :defcalc(x) : dx= 0 ...

最新文章

  1. makefile 库目录
  2. centos 更改mysql数据库目录位置_centos更改MySQL数据库目录位置
  3. 破解前端面试系列(3):如何搞定纸上代码环节?
  4. ITK:并排平铺图像
  5. Http(s)与后台交互方式
  6. Linux终端设置成256色模式,如何设置LinuxX终端,使Emacs可以访问256色?
  7. resiprocate 之repro注册
  8. 【数字信号】基于matlab GUI DTMF双音多频手机拨号仿真系统【含Matlab源码 1085期】
  9. SpringBoot前后端分离登陆验证码实现以及不显示问题
  10. Python数据解析
  11. 实现原理 扫描枪_详细介绍扫描枪工作原理
  12. 如何复制网页上不能复制的文字——三种解决方案
  13. MATLAB图形绘制--添加图例
  14. 解决github无法clone
  15. [转] 彼得林奇:最珍贵的成长股投资精髓
  16. 谷歌中国推出10款有趣的小工具
  17. 科技云报道:安全脱管不如托管
  18. KG-开源项目:QASystemOnMedicalKG【以疾病为中心的一定规模医药领域知识图谱,并以该知识图谱完成自动问答与分析服务】
  19. iOS-Core-Animation-Advanced-Techniques(三)
  20. Redis-Introduce

热门文章

  1. react-native调用安卓原生,如果调用没有参数的方法会报错,会提示没有加入参数.
  2. gravity与Layout_gravity的区别
  3. 基于JAVA+Servlet+JSP+MYSQL的教室资源管理系统
  4. 剑指offer:对称的二叉树(镜像,递归,非递归DFS栈+BFS队列)
  5. ASP.NET Core学习——6
  6. 魔力Python--if __name__ == '__main__' 的理解
  7. Go学习笔记(只有链接)
  8. 计算机中字符编码换算
  9. python-socket2
  10. Why Not Specialize Function Templates?