## 函数定义
**根据输入做特定的处理,将处理结果返回叫函数**。
![](https://upload.wikimedia.org/wikipedia/commons/b/b8/Apple_slicing_function.png)
我们先来看函数的数学定义:
*给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示。我们把这个关系式就叫函数关系式,简称函数。函数概念含有三个要素:定义域A、值域C和对应法则f。其中核心是对应法则f,它是函数关系的本质特征*
![](https://www.shuxuele.com/sets/images/function-fx-x2.svg)
我们在在学习数学的时候学习过很多二元一次方程:比如:
* *3x+2y=5*
* *2x+3y=8*
我们首先会把方程变成这种形式:
* *y = (5-3x)/2*
* *y = (8-2x)/3*
经过这层转换,等式的左边是我们想要得到的结果变量,等式的右边是我们我们要做的数据处理。我们每给出一个x就会根据函数定义得到一个y。这个过程就叫做函数化。
## python里的函数定义
python的函数定义只是把我们的数学模型做了简单改造。来看代码:
~~~
def square(a):
print(a)
return a * a
~~~
我们对照函数定义来理解一下这段代码:
**根据输入做特定的处理,将处理结果返回叫函数**。
我们代码的第一行`def square(a)` 是对函数的定义声明。可以抽象为:`def 函数名字(输入参数)`。其中 def 是 definition(定义)的缩写。
代码的第二行和点航是对输入的处理,也就是**函数体**。
代码的第三行 `return a*a` 是**处理结果返回**的部分,**return** 是返回的意思。
## 函数调用
函数调用很简单,看代码:
~~~
b = square(2)
~~~
我们只需要用函数名字加函数参数就可以完成函数的调用。这个是不是很熟悉?我们之前用的`print('helllo')`、`input()` 都是调用。
函数调用后代码会先执行函数体的代码,当函数体代码执行完后继续原来下面的代码。
## 函数的意义
函数是编程语言的核心,通过使用函数。能够真正的让我们的代码工程化,变得可维护。整体来看,使用函数有如下好处:
![](http://gdta.ctoy.com.cn/data/upload/image/201611/2b94a70292bbbb7f5d2af5301e767326.jpg)
**1. 程序结构清晰**
通过函数,我们可以把代码分块,每块负责不同的模块(事情)。这样代码清晰容易管理。
我们可以想一下小区的垃圾分类,如果我们没有将生活垃圾按模块(分类)放到不同的垃圾桶里。那垃圾处理就会非常麻烦了。
![](http://p3.pstatp.com/large/pgc-image/1525822568138e410d9bf6a)
**2. 复用性好**
通过使用函数,我们可以将重复的、类似的代码只写一次,通过函数调用来简化我们的代码。
**3. 容易修改**
因为我们的代码通过函数分成了一个一个一个的模块,所以我们想改某个模块的功能,只需要关注对应的函数就好了,对整体没有太大影响。
- 课程介绍
- 搭建环境
- 什么是计算机
- 程序是怎么运行的
- 安装python
- 项目实例-安装IDE
- 变量和简单数据类型
- 数据&变量
- 数字
- 字符串
- 布尔类型
- 项目实例
- 容器-列表
- 容器
- 列表
- 项目实例
- 容器-字典
- 定义字典
- 项目实例
- 数据类型总结
- 条件语句
- python条件语句
- 项目实例
- 循环语句
- for循环
- while循环
- 项目实例
- 函数
- 5.0函数定义
- 5.2函数实战
- 6.文件系统
- 6.1 文件系统介绍&python查找文件
- 6.2 用python读写文件
- 7. python操作时间
- 8.面向对象
- 8.1 类和对象
- 8.2 继承和重写
- 8.3 面向对象项目实战
- 9 GUI编程
- 9.1 GUI基础
- 9.2 备忘清单GUI版
- 10.网络
- 10.1 网络的发展
- 10.2 python http
- 11.web开发
- 11.1 web基础&HTML
- 11.2 CSS&JavaScript
- 11.3 网页计算器
- 11.3 网站开发实战-播客搭建
- 11.3 python-web
- 12. 项目实战-数据处理
- 13. 项目实战-AI入门
- 13.1 环境搭建
- 心得
- 13.2 Tensorflow的瓜怎么吃
- 14 pygame
- 14.1 pygame Helloworld
- 14.4 pygame 动画基础 Animation
- 从0开始学python第14.5节 pygame 加载图片和声音
- 从0开始学python第14.6节 pygame.sprite(上)
- 14.7 pygame.sprite模块(下)
- 14.8 pygame射击游戏(一)
- pygame射击游戏(二)
- 14.8 pygame射击游戏(三)
- 14.8 pygame射击游戏(四)
- 14.8 pygame射击游戏(五)