54.def语句自定义函数
1.课题导入—数学中的函数
1.1 计算圆的面积
圆的计算公式:π*r**2
r**2 表示r的平方。
print(5**2)
【终端输出】
25
r**3 表示r的3次方。
print(5**3)
【终端输出】
125
【体验代码】
r = 3
print(3.14*r**2)
【终端输出】
28.26
1.2 计算不规则图形的面积
【目标任务】
上图中大圆的半径为5,小圆的半径为2,计算黄色部分的面积。
【思路解析】
圆的面积计算有现成的函数:π*r**2
上图黄色部分是不规则图形,计算该部分的面积,没有现成的函数。
我们可以自定义一个函数计算黄色部分的面积:
自定义一个函数:黄色部分的面积=大圆的面积-小圆的面积
【体验代码】
R = 5
r = 2
π = 3.14
s = π*R**2 - π*r**2
print(s)
【终端输出】
65.94
【代码解析】
s = π*R**2 - π*r**2 是我自定义的函数用于计算黄色部分的面积。
s 是函数名。
R r 是函数的参数。
数学中有现成的函数可以使用,也可以根据需求自己定义函数。
python和数学一样,有现成的函数可以使用,即Python的内置函数。
同理,也可以根据需求自己定义一个函数。
2. 什么是函数
【官方定义】
函数是将一段具有独立功能的代码块整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求。
【个人定义】
函数是指编写好的,能完成特定功能且可以重复调用的代码段。
3. 函数分类
Python中,函数有内置函数和自定义函数2种。
3.1 内置函数
内置函数是指像print、input、type等安装Python后就能直接使用的函数。
【print输出函数】
print(123)
【终端输出】
123
【type查看数据类型函数】
print(type(123))
【终端输出】
<class 'int'>
3.2 自定义函数
自定义函数是指:根据自己的实际需求自己编写一个函数。
4. 计算多个矩形的面积
【目标任务】
有5个矩形,长和宽分别为(8,4),(8,5),(8,6),(8,7),(8,8)。
编写代码输出这5个矩形的面积。
【第1个矩形】
x = 8
y = 4
print(x*y)
【终端输出】
32
x存储的是矩形的长。
y存储的是矩形的宽。
矩形的面积=长*宽
【第2个矩形】
x = 8
y = 5
print(x*y)
【终端输出】
40
【第3个矩形】
x = 8
y = 6
print(x*y)
【终端输出】
48
后2个矩形的面积计算代码省略。
我们发现上述的代码除了变量的值不一样,代码基本是相似的。
计算5个矩形的面积,我们要写5次类似的代码。
且我们要重新赋值5次。
这样的代码相当冗余。
如果我们用自定义函数只需要写一次就能解决这个问题,且代码更为简洁。
5. 自定义函数计算矩形的面积
【体验代码】
def s (l, w) :
s = (l*w)
print(s)
s(8,4)
【终端输出】
32
length [le?θ]:长度。
width [w?dθ]:宽度。
【输出5个矩形的面积:长和宽分别为(8,4),(8,5),(8,6),(8,7),(8,8)】
def s (l, w) :
s = (l*w)
print(s)
s(8,4)
s(8,5)
s(8,6)
s(8,7)
s(8,8)
【终端输出】
32
40
48
56
64
自定义函数的作用就是将需要执行的代码打包,进行封装,需要的时候直接调用即可。
这里封装的是计算矩形面积的代码。
6.自定义函数的写法
1.先写函数要实现的功能
我们自定义一个函数,要实现的功能是输出面积。
l = 8
w = 4
s = l*w
print(s)
【终端输出】
32
2.添加自定义函数语句
def s(l,w):
-
def 是自定义函数关键字。 -
s 是我定义的函数名,这里表示面积,大家根据自己的喜欢命名。 -
l ,w 是函数s 的参数,这里的参数只是一个符号,没有具体的数值,我们称之为形式参数,简称形参。 -
def语句以英文冒号: 结尾,且英文冒号后面有4个空格的缩进。
【第一次合并代码】
def s(l,w):
s = l*w
print(s)
3.调用函数
s(8,4)
s 是函数名。
8 和4 是要计算矩形的长和宽,是可以参与计算的具体数值,我们称之为实际参数,简称为实参。
【合并代码】
def s(l,w):
s = l*w
print(s)
s(8,4)
【终端输出】
32
s(8,4) 中的8和4可以替换成任何数值。
自定义函数的作用就是指我写了一个计算矩形面积的函数,我先把它封装起来:
下面的就是我要封装的部分:
def s(l,w): ?? s = l*w ?? print(s)
封装好了后,我需要的时候我直接传入参数即可调用函数。
s(8,4)
这里的8和4可以根据题目需要进行替换。
7. 自定义函数的语法
def语句自定义函数由7部分组成:
①关键字 def 。
define[d??fa?n]:定义。
def 是 define 的缩写,def为定义函数的固定格式。
②是函数名。
函数名和变量名一样,也是自己命名的。
③是形式参数。
④英文冒号: 。
⑤是四个空格的缩进。
⑥是函数体。函数体就是我们要实现的功能。
⑦return后接返回值。如果没有要返回的值,return可以省略。
【形象理解自定义函数】
我们可以把函数理解成一个破壁机。
破壁机的功能有炸果汁、煮粥、煮豆浆等等。
在使用破壁机的时候,我们并不需要去研究破壁机的发动机工作的原理。
我们需要研究的是如何操作破壁机。
破壁机就是一个将炸果汁、煮粥、煮豆浆等多个功能进行封装的函数。
【参数=食材】
参数等同于破壁机中加入的食材。
加橙子就榨橙汁。
加黄豆就煮豆浆。
【函数体=功能模式】
函数体就是破壁机的功能。
破壁机有果汁模式、豆浆模式、米糊模式等等,我们需要用什么功能就按对应的键即可。
破壁机的每一种模式就等同于函数体中的一段代码。
我写了3段代码,一段可以实现果汁模式、一段可以实现豆浆模式,一段可以实现米糊模式。
写好后我将3段代码打包封装好,你使用的时候需要果汁你就调用果汁模式,需要豆浆你就调用豆浆模式。
【return+变量名=成品】
return将函数的计算结果返回到调用处。
return后通常接一个变量名。
破壁机最终的成品是橙汁、豆浆。
变量等同于接收果汁、豆浆的杯子。
return+变量名就将榨好的果汁放到杯子里返回给使用者。
如果函数没有返回值,return可以省略不写。
没有返回值的意思是程序执行完毕之后,不需要给调用函数处提供数据。
【函数调用=模式选择】
函数调用要带着参数一起走。
就相当于选择豆浆模式后要在破壁机里加入黄豆。
8.缩进语法汇总
截止目前我们共学了4个需要英文冒号和4个空格缩进的语法:
- if 条件判断语句
- for 循环语句
- while循环语句
- 自定义函数
|