函数式编程 Functional Programming

1. 简介

  • 一种基于 lambda 演算的编程方式

    • 程序中只有函数
    • 函数可以作为参数,也可以作为返回值
  • 纯函数式编程语言
    • LISP
    • Haskell
    • ...
  • Python 函数式编程
    • 只是借鉴函数式编程的一些特点
    • 可以理解成一半函数式一半 Python
  • 相关内容
    • 匿名函数 (lambda);这回先将此项
    • 高阶函数
    • 返回函数
    • 装饰器
    • 偏函数

2. 函数

  • 功能

    • 最大程度复用代码
  • 不足之处
    • 如果函数很小,很短,则会造成啰嗦
    • 如果函数被调用次数少,则会造成浪费
    • 对于阅读者来说,造成阅读流程的被迫中断

3. 匿名函数

3.1 lambda 表达式也称“匿名函数”

  • 不是一个代码块
  • 仅仅是一个表达式
  • 函数体相对简单
  • 可以有参数
  • 若参数超过一个,可以用逗号隔开

3.2 lambda 表达式的用法

  1. lambda 开头
  2. 紧跟一定数量的参数(若有)
  3. 参数后用冒号和表达式主题隔开
  4. 因为只是一个表达式,所以没有 return

3.3 用法示例

例子1

>>> square = lambda x: x ** 2
>>> square(5)
25

例子2

>>> delta = lambda a,b,c: b*b - 4*a*c
>>> delta(1, 2, 1)
0

[Python3 练习] 011 利用异常解题的更多相关文章

  1. Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED”

    Python3 打开 https 链接,异常:“SSL: CERTIFICATE_VERIFY_FAILED” 一.问题 Python2.7.9 之后,当使用urllib.urlopen打开一个 ht ...

  2. Python3开发过程常见的异常(最近更新:2019-04-26)

    持续更新中... 常见异常解决方案 1.Base Python3.7环境相关:https://www.cnblogs.com/dotnetcrazy/p/9095793.html 1.1.Indent ...

  3. 【java】利用异常机制,往前台写错误信息

    有时候,程序可能会报异常,而这些异常,通常需要提示前台操作人员怎么去处理,才能完成业务. 此时,我们只需要在业务层,自己抛出一个异常,自己捕捉之后,调用下类,即可输出到前台. 1.servlet里面可 ...

  4. 一种利用异常机制基于MVC过滤器的防止重复提交的机制分享

    防止重复提交验证机制 某些时候因为系统反应稍慢,急性子用户可能不耐烦会进行重复的提交,这个操作不仅可能造成系统负担,也可能产生垃圾数据. 出现这两种状况都是我们不希望的. 为此,在公司项目系统设计了以 ...

  5. iOS 利用异常 NSException 调试代码

    可以用在代码的调试上: -(instancetype)init{ @throw [NSException exceptionWithName:@"Singleton" reason ...

  6. Mac 下安装python3.7 + pip 利用 chrome + chromedriver + selenium 自动打开网页并自动点击访问指定页面

    1.安装python3.7https://www.python.org/downloads/release/python-370/选择了这个版本,直接默认下一步 2.安装pipcurl https:/ ...

  7. python3.6.2利用pyinstaller发布EXE

    我的环境是Ubuntu 16.04,系统自带Python2和Python3 安装 pip3 install pyinstaller 发布exe pyinstaller -F helloworld.py ...

  8. python3 中的try 异常调试与 raise 异常抛出

    一.什么是异常? 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行. 一般情况下,在Python无法正常处理程序时就会发生一个异常. 异常是Python对象,表示一个错误. 当Py ...

  9. 【python3】 抓取异常信息try/except

    注意:老版本的Python,except语句写作"except Exception, e",Python 2.6后应写作"except Exception as e&qu ...

随机推荐

  1. JavaScriptPlus操作类

    /// <summary> /// JavaScript 操作类 /// </summary> public class JavaScriptPlus { public Jav ...

  2. docker命令集锦

    sudo docker image ls 查看有哪些image镜像sudo docker run hello 运行image 删除全部containerdocker rm $(docker conta ...

  3. eclipse打开项目中文件时左侧project explorer同时展开该文件的路径

    如图,点击Package Explorer面板上的双向箭头图标即可

  4. Android中的“再按一次返回键退出程序”代码实现

    1 用户在退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用也是这么做的,但也有些应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友 ...

  5. 自定义MessageConverter--消息转换器

    我们在进行发送消息的时候,正常情况下消息体为二进制的数据方式进行传输,如果希望内部帮我们进行转换,或者指定自定义的转换器,就需要用到MessageConverter 自定义常用转换器:MessageC ...

  6. Composer 安装 zlib_decode(): data error 错误

    1.composer 安装一个组件(composer require topthink/think-worker) 报错如下 Failed to decode response: zlib_decod ...

  7. [心得]暑假DAY1 | 7-7考试总结

    呼.. 正式开始暑假集训. 今天一上午还在搞7-7的考试改题 然而,该来该去,TLE48过不去了 不知道哪的问题,loj上1w3ms(卡常都没能救得了) 至于T1和T3,简单总结一下算了 排序 感觉很 ...

  8. TCP层shutdown系统调用的实现分析

    概述 shutdown系统调用在tcp层会调用两个函数,对于ESTABLISHED状态需要调用tcp_shutdown关闭连接,对于LISTEN和SYN_SENT状态则需要以非阻塞模式调用tcp_di ...

  9. 在Linux上部署Nginx,反向代理tornado的WebSite

    1.安装 Nginx yum install -y nginx 2. 修改nginx配置文件 cd /etc/nginx/ mv nginx.conf nginx.conf.swf mv nginx. ...

  10. 提问(prompt)

    prompt弹出消息对话框,通常用于询问一些需要与用户交互的信息.弹出消息对话框(包含一个确定按钮.取消按钮与一个文本输入框). 语法: prompt(str1, str2); 参数说明: str1: ...