Python学习笔记__4章 函数式编程
# 这是学习廖雪峰老师python教程的学习笔记
函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
而函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。
理解计算机(Computer)和计算(Compute)的概念
在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言。
而计算则指数学意义上的计算,越是抽象的计算,离计算机硬件越远
对应到编程语言:
就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;
越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言。
函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。
转载于:https://blog.51cto.com/12758568/2115992
Python学习笔记__4章 函数式编程相关推荐
- python函数式编程读取数据-python学习笔记9:函数式编程
函数式编程(FunctionalProgramming) 基于lambda演算的一种编程方式 程序中只有函数 函数可以作为参数,同样可以作为返回值 纯函数式编程语言: LISP, Haskell Py ...
- 【Python学习笔记】- 06 函数式编程
1 什么是函数 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码块. 2 使用函数的好处 减少重复代码 程序容易扩展 保持代码的一致性 3 如何定义一个函数 以def关键词开头,后接函数的 ...
- Python学习笔记__4.1章 高阶函数
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们知道Python内置的求绝对值的函数是abs() # 调用abs()函数可以获得一个值 >>> abs(-10) 10 ...
- Python学习札记(二十) 函数式编程1 介绍 高阶函数介绍
参考: 函数式编程 高阶函数 Note A.函数式编程(Functional Programming)介绍 1.函数是Python内建支持的一种封装,我们通过一层一层的函数调用把复杂任务分解成简单的任 ...
- Python学习笔记__8章错误、调试和测试__8.1章错误处理
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们在运行程序或编写函数时,发生错误后,系统都会返回错误信息.我们可以通过某些机制,让错误信息更加明了 1.1.try try机制的格式就是 ...
- Python学习笔记__5章 模块
# 这是学习廖雪峰老师python教程的学习笔记 1.概览 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在Python中,一个.py文件就称之为 ...
- 学习笔记:Python3 函数式编程
仅为个人查阅使用,如有错误还请指正. 函数式编程是一种抽象计算的编程模式. 函数式编程的特点 1.把计算视为函数而非指令. 2.纯粹的函数式编程语言编写的函数没有变量. 3.支持高阶函数, ...
- Python学习笔记:I/O编程
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:面向对象高级编程(完)
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
最新文章
- HTML iframe 和 frameset 的区别
- 使用GPS实时记录运动路线
- SQL Server Guid和NEWSEQUENTIALID函数
- Three.js制作360度全景图
- 第二十二节: 以SQLServer为例介绍数据库自有的锁机制(共享锁、更新锁、排它锁等)和事务隔离级别 :
- 探索安卓中有意义的动画!
- 线程间通信与协作方式之——wait-notify机制
- IDEA jsp中文乱码
- 软件模拟I2C(万能模板)
- 15b万用表怎么测电容_FLUKE-15B+型数字万用表操作规程
- Oracle的子查询【单行子查询和多行子查询】
- python随机生成licence plate numer
- Macbook 开机后黑屏,电池满电却瞬间没电问题
- Netty框架之责任链模式及其应用
- 安卓Palette原理分析
- ff14优雷卡补正什么意思_如何评价FF14 禁地优雷卡?
- SpringBoot 出现 Consider defining a bean of type ‘xxx‘ in your configuration 问题解决方案
- 这是一个为你的“所有APP”加速的APP
- 网页版终端webssh2配置
- 侯继勇先生担任BCF新闻理事
热门文章
- 让小乌龟可以唱歌——对Python turtle进行拓展
- Thinking in JAVA笔记——第三章 操作符 第四章控制执行流程
- Leetcode 1 Two Sum
- 意大利万岁??摘自网络
- Fire Workflow FAQ
- python函数中可变参数的传递方式是_Python中函数的参数传递与可变长参数
- bootstrap4 左侧导航栏 优秀 大气_志愿服务嘉年华|“持志隽永 赴愿奔行优秀志愿服务项目展示第六期...
- Windows核心编程 第十四章 虚拟内存
- hdu1561 树形dp
- POJ2983 查分约束系统