🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 函数定义重申 我们知道,函数的定义可以用:**根据输入做特定的处理,将处理结果返回**来描述。通过函数,可以让我们的程序**结构清晰**、**复用性好**、**容易修改**。这节课,我们就通过一些函数实例还体会用函数的好处。 ## 函数实例 1. 九九乘法表 在学习循环的时候,我们用用循环实现了一个99乘法表,咱们再来复习一下代码。 ~~~ a = 0 while a < 9: a = a + 1 b = 0 multi = [] while b < a: b = b + 1 multi.append("%s*%s=%s" % (str(a), str(b), str(a * b))) print(' '.join(multi)) ~~~ 我们这个代码里有一个双层循环,外层循环是用来循环1~9的九行的乘数。内层循环是用来输出每一行的内容。我们尝试用函数来改造这个程序,看代码: ~~~ def buildRow(a): b = 0 multi = [] while b < a: b = b + 1 multi.append("%s*%s=%s" % (str(a), str(b), str(a * b))) return " ".join(multi) a = 0 while a < 9: a = a + 1 print(buildRow(a)) ~~~ 相比于未定义函数的代码,我们通过`buildRow`函数将每行输出的内容给抽象出来,这样代码的结构会清晰很多。 2. 圆的面积 我们知道,圆形的面积公式是:**S=π*r²**,咱们用函数来模拟一下怎么求圆形的面积: ![](https://s1.ax1x.com/2018/08/16/PRIK3V.png) ~~~ def cricleArea(radii): return 3.14 * radii * radii print(cricleArea(2)) print(cricleArea(4)) print(cricleArea(5)) ~~~ 我们将 **S=π*r²** 定义个函数,这样在计算圆形面积的时候,只需要调用cricleArea即可。这样可以就可以避免重复的代码,后续改代码也会轻松很多 3. 正多边形周长 我们知道,正多边形的周长是边长乘以边数,咱们来用函数模拟求正多边形的过程。 ~~~ def polygonLength(edgeLength, edgeCount): return edgeLength*edgeCount print(polygonLength(4,4)) print(polygonLength(6,5)) print(polygonLength(3,3)) ~~~ 4. 水状态的化学实验 在学习条件语句的时候我们模拟了水在不同温度下呈现状态的实验。咱们来用函数再来实现一遍 ![](https://slidesplayer.com/11727296/65/images/5/%E6%B0%B4%E7%9A%84%E5%90%84%E7%A7%8D%E5%BD%A2%E6%80%81+%E4%BD%A0%E8%BF%98%E8%83%BD%E6%83%B3%E5%88%B0%E5%93%AA%E4%BA%9B%EF%BC%9F+%E6%B2%B3%E6%B5%81%E3%80%81%E6%B5%B7%E6%B4%8B%E3%80%81%E6%B9%96%E6%B3%8A%E3%80%81%E5%B1%B1%E6%B3%89%E3%80%81%E5%BD%A9%E8%99%B9%E3%80%81%E7%80%91%E5%B8%83%E2%80%A6%E2%80%A6+%E6%B0%B4%E7%9A%84%E4%B8%89%E6%80%81%EF%BC%9A%E5%9B%BA%E6%80%81%E3%80%81%E6%B6%B2%E6%80%81%E3%80%81%E6%B0%94%E6%80%81+%E6%B0%B4+%E9%9B%BE+%E9%9C%B2%E7%8F%A0+%E6%B0%B4%E8%92%B8%E6%B0%94+%E5%86%B0+%E9%9C%9C+%E9%9B%AA+%E9%9B%A8.jpg) 看代码 ~~~ def getWaterStatus(temperature): if temperature < 0: return "固态" elif temperature >= 0 and temperature <= 100: return "液态" else: return "气态" print(getWaterStatus(-2)) print(getWaterStatus(10)) print(getWaterStatus(120)) ~~~ 怎么样?通过这个例子对函数有没有更形象的认识了呢?