# 这是学习廖雪峰老师python教程的学习笔记

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

而函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。

理解计算机(Computer)和计算(Compute)的概念

  • 在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言。

  • 而计算则指数学意义上的计算,越是抽象的计算,离计算机硬件越远

对应到编程语言:

  • 就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;

  • 越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言。

函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。

函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!

Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。

转载于:https://blog.51cto.com/12758568/2115992

Python学习笔记__4章 函数式编程相关推荐

  1. python函数式编程读取数据-python学习笔记9:函数式编程

    函数式编程(FunctionalProgramming) 基于lambda演算的一种编程方式 程序中只有函数 函数可以作为参数,同样可以作为返回值 纯函数式编程语言: LISP, Haskell Py ...

  2. 【Python学习笔记】- 06 函数式编程

    1 什么是函数 函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码块. 2 使用函数的好处 减少重复代码 程序容易扩展 保持代码的一致性 3 如何定义一个函数 以def关键词开头,后接函数的 ...

  3. Python学习笔记__4.1章 高阶函数

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们知道Python内置的求绝对值的函数是abs() # 调用abs()函数可以获得一个值 >>> abs(-10) 10 ...

  4. Python学习札记(二十) 函数式编程1 介绍 高阶函数介绍

    参考: 函数式编程 高阶函数 Note A.函数式编程(Functional Programming)介绍 1.函数是Python内建支持的一种封装,我们通过一层一层的函数调用把复杂任务分解成简单的任 ...

  5. Python学习笔记__8章错误、调试和测试__8.1章错误处理

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 我们在运行程序或编写函数时,发生错误后,系统都会返回错误信息.我们可以通过某些机制,让错误信息更加明了 1.1.try try机制的格式就是 ...

  6. Python学习笔记__5章 模块

    # 这是学习廖雪峰老师python教程的学习笔记 1.概览 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在Python中,一个.py文件就称之为 ...

  7. 学习笔记:Python3 函数式编程

    仅为个人查阅使用,如有错误还请指正. 函数式编程是一种抽象计算的编程模式. 函数式编程的特点 ​ 1.把计算视为函数而非指令. ​ 2.纯粹的函数式编程语言编写的函数没有变量. ​ 3.支持高阶函数, ...

  8. Python学习笔记:I/O编程

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. Python学习笔记:面向对象高级编程(完)

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. HTML iframe 和 frameset 的区别
  2. 使用GPS实时记录运动路线
  3. SQL Server Guid和NEWSEQUENTIALID函数
  4. Three.js制作360度全景图
  5. 第二十二节: 以SQLServer为例介绍数据库自有的锁机制(共享锁、更新锁、排它锁等)和事务隔离级别 :
  6. 探索安卓中有意义的动画!
  7. 线程间通信与协作方式之——wait-notify机制
  8. IDEA jsp中文乱码
  9. 软件模拟I2C(万能模板)
  10. 15b万用表怎么测电容_FLUKE-15B+型数字万用表操作规程
  11. Oracle的子查询【单行子查询和多行子查询】
  12. python随机生成licence plate numer
  13. Macbook 开机后黑屏,电池满电却瞬间没电问题
  14. Netty框架之责任链模式及其应用
  15. 安卓Palette原理分析
  16. ff14优雷卡补正什么意思_如何评价FF14 禁地优雷卡?
  17. SpringBoot 出现 Consider defining a bean of type ‘xxx‘ in your configuration 问题解决方案
  18. 这是一个为你的“所有APP”加速的APP
  19. 网页版终端webssh2配置
  20. 侯继勇先生担任BCF新闻理事

热门文章

  1. 让小乌龟可以唱歌——对Python turtle进行拓展
  2. Thinking in JAVA笔记——第三章 操作符 第四章控制执行流程
  3. Leetcode 1 Two Sum
  4. 意大利万岁??摘自网络
  5. Fire Workflow FAQ
  6. python函数中可变参数的传递方式是_Python中函数的参数传递与可变长参数
  7. bootstrap4 左侧导航栏 优秀 大气_志愿服务嘉年华|“持志隽永 赴愿奔行优秀志愿服务项目展示第六期...
  8. Windows核心编程 第十四章 虚拟内存
  9. hdu1561 树形dp
  10. POJ2983 查分约束系统