## 内建函数

示意图:

![](https://img.kancloud.cn/51/bf/51bf779cade57de2975da7532a27a611_700x563.png)

通过观察规律其实不难发现,Python中所谓的使用函数就是把你要处理的对象放到一个名字后面的括号里就可以了。简单的来说,函数就是这么使用,可以往里面塞东西就得到处理结果。这样的函数在Python中还有很多。

以最新的3.50版本为例,一共存在68个这样的函数,它们被统称为内建函数 (Built-in Functions)。之所以被称之为内建函数,并不是因为还有“外建函数”这个概念,内建的意思是这些函数在3.50版本安装完成后你就可以使用它们,是“自带”的而已。

现在你并不必急着把这些函数是怎么用的都搞明白,其中一些内建函数很实用, 但是另外一些就不常用,比如涉及字符编码的函数ascii(),bin(),chr()等等,这些都是相对底层的编程设计中才会使用到的函数,在你深入到一定程度的时候才会派的上用场。

Python官网中各个函数介绍的链接: [https://docs.python.org/3/library/functions.html](https://docs.python.org/3/library/functions.html)

## 定义函数

在Python中可以使用def关键字来定义函数,和变量一样每个函数也有一个名字,而且命名规则跟变量的命名规则是一致的。在函数名后面的圆括号中可以放置传递给函数的参数,函数执行完成后我们可以通过return关键字来返回一个值。

你可以定义一个由自己想要功能的函数,以下是简单的规则:

* def (即define,定义)的含义是创建函数,也就是定义一个函数。函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。

* arg (即argument,参数)有时你还能见到这种写法:parameter,二者都是参数的,意思但是稍有不同,这里不展开说了。任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。

* 函数内容以冒号起始,并且缩进。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

* return即返回结果。return \[表达式\] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

* def和return是关键字(keyword),Python就是靠识别这些特定的关键字来明白用户的意图,实现更为复杂的编程。

现在总结一下:Define a function named ‘function’ which has two arguments : arg1 and arg2,returns the result ‘Something’ 是不是很易读很顺畅?代码的表达比英文句子更简洁一点:

![](https://img.kancloud.cn/a4/96/a496ad7aac4c98b191982dd5f815f85d_698x316.png)

语法

Python 定义函数使用 def 关键字,一般格式如下:

```

def 函数名(参数列表):

函数体

```

下面是一个打印问候语的简单函数,名为greet\_user():

```

def greet_user():

"""显示简单的问候语"""

print("Hello!")

greet_user()

Hello!

```

这个示例演示了最简单的函数结构。使用关键字def来告诉Python你要定义一个函数。这是函数定义,向Python指出了函数名,还可能在括号内指出函数为完成其任务需要什么样的信息。在这里,函数名为greet\_user(),它不需要任何信息就能完成其工作,因此括号是空的(即便如此,括号也必不可少)。最后,定义以冒号结尾。

紧跟在def greet\_user():后面的所有缩进行构成了函数体。第二行文本是被称为文档字符串(docstring)的注释,描述了函数是做什么的。文档字符串用三引号括起, Python使用它们来生成有关程序中函数的文档。

代码行print("Hello!")是函数体内的唯一一行代码, greet\_user()只做一项工作:打印Hello!。

要使用这个函数,可调用它。 函数调用让Python执行函数的代码。要调用函数,可依次指定函数名以及用括号括起的必要信息,如最后一行处所示。由于这个函数不需要任何信息,因此调用它时只需输入greet\_user()即可。和预期的一样,它打印Hello!:

## 函数的参数

只需稍作修改,就可以让函数greet\_user()不仅向用户显示Hello!,还将用户的名字用作抬头。为此,可在函数定义def greet\_user()的括号内添加username。通过在这里添加username,就可让函数接受你给username指定的任何值。现在,这个函数要求你调用它时给username指定一个值。调用greet\_user()时,可将一个名字传递给它,如下所示:

```

def greet_user(username):

print("Hello, " + username.title() + "!")

greet_user('jesse')

greet_user('sarah')

Hello, Jesse!

Hello, Sarah!

```

代码greet\_user('jesse')调用函数greet\_user(),并向它提供执行print语句所需的信息。这个函数接受你传递给它的名字,并向这个人发出问候。

同样, greet\_user('sarah')调用函数greet\_user()并向它传递'sarah',打印Hello, Sarah!。你可以根据需要调用函数greet\_user()任意次,调用时无论传入什么样的名字,都会生成相应的输出。

## 实参和形参

前面定义函数greet\_user()时,要求给变量username指定一个值。调用这个函数并提供这种信息(人名)时,它将打印相应的问候语。

在函数greet\_user()的定义中,变量username是一个形参——函数完成其工作所需的一项信息。在代码greet\_user('jesse')中,值'jesse'是一个实参。实参是调用函数时传递给函数的信息。我们调用函数时,将要让函数使用的信息放在括号内。在greet\_user('jesse')中,将实参'jesse'传递给了函数greet\_user(),这个值被存储在形参username中。

注意 大家有时候会形参、实参不分,因此如果你看到有人将函数定义中的变量称为实参或将函数调用中的变量称为形参,不要大惊小怪。

python中定义函数的关键字是_____定义函数相关推荐

  1. 递归重入c语言延时函数多任务程序设计中的函数重入问题按照Keil的规范对函数添加关键字“reentrant”,将函数定义为可重入的 void Delay_MS(x) reentrant

    c语言延时函数_子牙篇(2)多任务程序设计中的函数重入问题 weixin_39559333 2020-11-29 09:07:44  39  收藏 文章标签: c语言延时函数 c语言延时函数delay ...

  2. Python中lambda详解(包括内置函数map、reduce、filter、sorted、max)

    文章目录 一.lambda是什么? 1.lambda语法 2.语法详解 二.lambda的使用 1.定义 2.调用 3.替换 4.作返回值 三.lambda作参数 1.map函数 2.reduce函数 ...

  3. python中的断点是什么_python断点定义

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 功能对比下表列出了 json python sdk 和 xml python s ...

  4. python中标识符下划线用作开头_python python中那些双下划线开头的那些函数都是干啥用用的...

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  5. 在python中可以用什么关键字来声明一个类_python里的raise是什么意思

    我们在开发当中经常会遇到一些未知或已知的错误,比如用requests发送请求时可能会出现异常,或者某个程序计算时出现分母为0的情况.面对各种奇形怪状的错误,高级语言都会有一个抛出错误的机制.在Pyth ...

  6. python中那些双下划线开头的那些函数都是干啥用用的

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  7. python属性名以两个下划线开头_python python中那些双下划线开头的那些函数都是干啥用用的...

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  8. Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中通过索引名称提取数据 loc()函数 Python中通过 ...

  9. Python中pandas库实现数据缺失值判断isnull()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中pandas库实现数据缺失值判断 isnull()函数 ...

最新文章

  1. 每天一个linux命令(33):df 命令
  2. 大话卷积神经网络CNN,小白也能看懂的深度学习算法教程,全程干货建议收藏!...
  3. delphi 执行一个外部程序,当外部程序结束后言主程序立即响应
  4. H3C SecPath防火墙GRE+IPSEC+OSPF典型配置举例
  5. 为什么现在小学生都学计算机编程了,为何要在小学阶段开展编程教育?
  6. Linux程序内存跟踪,分享一款Linux进程和内存活动监视神器
  7. 计算机丢失qt4core.dll,qtcore4.;dll文件丢失。怎么办?
  8. php计算机基础知识,计算机基础知识①
  9. 前端如何调用后端接口_后端开发:如何写出可靠的接口
  10. 工业机器人智能发展:视觉和触觉感应简化
  11. 前端学习(520):圣杯布局
  12. 实现(手撕)遗传算法与集成学习-人工智能大作业(特征选择其实是乱选的,抄的别人的,,,)
  13. GitHub 一周热点:听说程序员都是颜控?
  14. mysql查出的结果太大 php_如何解决PHP使用mysql_query查询超大结果集超内存问题
  15. requests, Beautifusoup 爬取新浪新闻资讯
  16. iphone开发 拨打电话
  17. Apple Watch新玩法:手势操控无人机
  18. 基于二进制粒子群算法的配电网故障诊断- 附代码
  19. hp 126NW驱动安装
  20. python文本查重_GitHub - LiuYinCarl/check_homework: 文本查重工具

热门文章

  1. 动手写webpack配置--4.webpack-dev-server相关参数说明
  2. 2019年热销微型笔记本计算机排名,2019年笔记本销量排行_2019年Q1全球笔记本电脑出货排名出炉...
  3. css引入 以及选择器040
  4. 《东周列国志》第八十八回 孙膑佯狂脱祸 庞涓兵败桂陵
  5. 什么投影仪适合家用?投影仪哪个品牌好
  6. 字节跳动前端面试经历及总结
  7. 好人卡:别让需要你的人觉得你太好
  8. pdf导入excel表格_如何将PDF插入Excel
  9. 电脑怎么设置护眼模式?
  10. 2020年的科技趋势:随时准备改变企业的未来