在流程很简单的时候,或者流程不简单但我们不需要考虑开发维护成本的时候,平面地组织你的代码就够了,不用费脑子,不需要考虑层次或重用的东西。当事情变得越来越复杂时,当同行对代码质量要求越来越高时,有一些重要的概念就出现了,而重用就是其中一个。重用就让某段代码可以方便地反复使用。为了重用,有必要认真考虑怎么封装,这是设计层面的事情,而函数是常用或重要的封装方式,虽然不是唯一的封装方式。

本文介绍流程的函数封装,以及python的内置函数。

函数,是实现了特定功能的代码块的集合。类或对象,也可以重用。但如果从机器语言的角度来说,类或对象(在编译或解释后)都不复存在,而函数,也就是指令块,仍然存在,且可能被反复执行,所以函数是封装的基础元素。使用函数对流程进行封装,可以让程序更加模块化,而模块化是系统设计的重要基础。当然,函数不是模块化的唯一手段。

(1)定义函数

python中定义函数,如下图:

函数,有两个特征,一个是参数,一个返回值。

在用def定义函数时,可以在括号内定义参数,这个叫形参(在函数调用时,传递的参数叫实参),比如:

执行结果如下:

在定义函数时,可以指定默认参数,意思是,调用时如果不传参数,那就使用默认值,比如这样定义一个函数:

执行效果是这样的:

以上函数调用时,已经使用了关键字参数,也就是调用时指定函数形参的名字,以"paramer1=xxx"的形式进行传递,这种方式经常使用,因为可以明确给哪个参数传递了哪个值,而且无顺序要求。

函数还有一种参数,叫不定长参数,适用于参数不明确的情景,比如这样定义与调用:

执行效果如下:

以上介绍了函数如何定义,以及它的参数特征。

函数除了参数这个特征,还有一个特征是返回值,返回值使用关键字return来返回。

一个函数如果没有return语句,那就相当在最后加了这一句:

return

以下是一个使用返回值的示例:

执行效果是这样的:

(2)lambda函数

以上函数的定义,都使用def,正而八经地定义了一个有名字的函数,而python还提供了一个实用的特征,叫lambda函数。lambda函数也叫匿名函数,一般是较短小的函数。

使用lambda关键字时,不指定函数名,只指定函数体,比如可以这样使用:

再比如这个示例:

(3)内置函数

以上介绍的是自定义函数,除了自定义函数,python还提供了一系列的内置函数,方便编码时直接调用。

比如,有这样的内置函数(此图来源于 http://www.runoob.com/python/python-built-in-functions.html ):

对于每个内置函数的作用,以下是一种查看的办法--使用内置函数help()来查看,比如输入:

help(len)

可以看到这样的提示输出:

也就是查看了内置函数len()的作用。


好了,总结一下,本文介绍了流程的函数封装,包括函数的参数与返回值的特征,特别介绍了lambda函数,文章最后简单介绍了python提供的内置函数。see you

python应用(6):函数的更多相关文章

  1. Python 动态创建函数【转】

    知乎上也有相似的问题 偶然碰到一个问题,初想是通过动态创建Python函数的方式来解决,于是调研了动态创建Python函数的方法. 定义lambda函数 在Python中定义lambda函数的写法很简 ...

  2. python中的函数

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...

  3. python高级之函数

    python高级之函数 本节内容 函数的介绍 函数的创建 函数参数及返回值 LEGB作用域 特殊函数 函数式编程 1.函数的介绍 为什么要有函数?因为在平时写代码时,如果没有函数的话,那么将会出现很多 ...

  4. python内置函数

    python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...

  5. Python基础三. 函数、lambda、filter、map、reduce

    一.概述 函数, 就是用一些语句组织起来实现一组特定的功能, 用来重复调用. 函数的作用及意义:最大化的重用代码和最小化的代码冗余以及对流程的分解. Python中有哪些函数: 内建的函数 第三方模块 ...

  6. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

  7. python 内置函数和函数装饰器

    python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...

  8. Python 之匿名函数和偏函数

    匿名函数与偏函数 匿名函数 Python允许使用lambda关键字创造匿名函数,lambda表达式用于定义匿名函数,它返回可调用的函数对象,语法如下: lambda arg1, arg2, … : e ...

  9. 用一个简单的例子来理解python高阶函数

    ============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...

  10. Python中用format函数格式化字符串的用法

    这篇文章主要介绍了Python中用format函数格式化字符串的用法,格式化字符串是Python学习当中的基础知识,本文主要针对Python2.7.x版本,需要的朋友可以参考下   自python2. ...

随机推荐

  1. 追根溯源之Linq与表达式树

    一.什么是表达式树?   首先来看下官方定义(以下摘录自巨硬官方文档)   表达式树表示树状数据结构中的代码,其中每个节点都是表达式,例如,方法调用或诸如的二进制操作x < y.   您可以编译 ...

  2. 关于maven下,lombok的安装

    1.首先下载lombok的jar包,可至https://mvnrepository.com/下载 2.双击即会自动扫描eclipse.exe,如图: 选择eclipse.exe,点击install/u ...

  3. 团灭 LeetCode 股票买卖问题

    很多读者抱怨 LeetCode 的股票系列问题奇技淫巧太多,如果面试真的遇到这类问题,基本不会想到那些巧妙的办法,怎么办?所以本文拒绝奇技淫巧,而是稳扎稳打,只用一种通用方法解决所用问题,以不变应万变 ...

  4. 数据库本地data source

    数据源表示数据库所在设备的ip地址或名称,基本上有以下几种写方法 data source = (local) data source = "127.0.0.1" data sour ...

  5. AC 自动机刷题记录

    目录 简介 第一题 第二题 第三题 第四题 第五题 第六题 简介 这就是用来记录我对于<信息学奥赛一本通 · 提高篇>一书中的习题的刷题记录以及学习笔记. 一般分专题来写(全部写一起可能要 ...

  6. [论文阅读] RNN 在阿里DIEN中的应用

    [论文阅读] RNN 在阿里DIEN中的应用 0x00 摘要 本文基于阿里推荐DIEN代码,梳理了下RNN一些概念,以及TensorFlow中的部分源码.本博客旨在帮助小伙伴们详细了解每一步骤以及为什 ...

  7. HTML+CSS系列:CSS选择器(标签、ID、类、通配符、后代、子元素、并集、伪类)

    一.标签选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  8. Hadoop调优 | NameNode主备宕机引发的思考

    大家都知道在双十一这些电商大型营销活动期间,电商网站的访问量等是平时的N倍.每当这个时候到来,无论是开发还是运维人员都严阵以待生怕服务出现问题.很不幸,笔者的一个朋友在一家电商公司上班,在双十一时,恰 ...

  9. 利用ms08_067入侵window xp sp1(English)版本

    前几天上课,老师搬出实验,自己体验了一下 1.环境配置 需要准备kali(攻击机),window xp (我这里是sp1 英文版本,标题很清楚了),攻击机和目标靶机要在同意网段下我的kali(192. ...

  10. 记录一些API(持续更新)

    //对response进行编解码URLEncoder.encode(string,"UTF-8");//ts检查checkbox是否为选中状态$event.target.check ...