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