函数结构
假设,一位农场主想要统计自己的圈地面积有多少,面对大大小小的多个圈地,用代码该如何实现呢?
可以设定⼀个计算⾯积的函数,多次调⽤。
农场主的圈地均为正方形,测量面积的函数编写好后,如代码所示。
第 1 到第 3 行代码,定义了一个名为 getArea 的函数,用于计算正方形面积并输出。
第 5 和第 6 行代码,调用这个函数,传入参数,就可以获得不同边长的正方形面积大小。
def getArea(length):
area = length*length
print(area)
getArea(13)
getArea(7)
计算好了圈地的⾯积,想要计算边长为 13 的圈地⾯积是不是大于 160,如果大于 160 就用来种⻄⽠。
如本例所示,程序虽然输出了⾯积大小,但是不能在函数外比较数据的大小。
这是因为函数内输出的数据,没有传递到函数外。这时候,我们就需要设置函数返回值。
函数返回值
def getArea(length):
area = length*length
return area
result = getArea(13)
print(result)
代码的作用:
在本例中,第 1 到第 3 行代码定义了一个名为 getArea
的函数,其功能为计算正方形面积,并将结果返回。
第 5 行调用函数 getArea()
传入参数,将返回值赋值给变量 result
。
第 6 行代码,输出变量 result
。
return
在函数中,使⽤关键字 return
设置要返回的数据。
return
位置一般都是在函数的末尾 ,这样才能停止函数内的代码运行并将 return
后的值返回。
返回值
return 后面是指定的返回值,返回值会返回到调用的地方。
变量
调用函数 getArea()
,传入参数 13,函数将运算结果 169 返回,并赋值给变量 result
。
代码小结
要定义函数和调用函数就需要这几个部分
在函数中使用关键字 return
时,要注意它的位置。
函数内部程序按照从上到下的顺序执行,如本例所示,函数内部有 for
循环,程序会等 for
循环执行完毕后,再执行 return
语句。
这样就可以得到传入列表中全部元素的累加值。
如果 return
的位置在函数的循环内部,函数内的循环只会执行一次。
因为执行到 return 语句,函数就返回当时的值,并且停止此次调用。
函数经过内部代码的执⾏会产⽣⼀个结果,这个结果可以是⼀个具体的值也可以是多个值。
在本例中,函数计算出正⽅形的周长和面积,函数返回了两个值。
当函数同时返回多个值时,以逗号 "," 隔开,并且返回值以元组的格式返回。
再来看这个案例。如图所示,左边的函数计算出正方形的面积,但是函数中没有 return 语句
。
此时,函数运行结束会返回一个空值(也就是None) ,作为返回值。
小练习
定义了一个叫做 "getSize" 的函数,该函数包含 1 个参数 length。
这个函数的功能是计算正方形周长和面积,并将两个结果作为函数的返回值返回。
现在分两次调用这个函数:
第一次传入参数 6 并输出结果。
第二次传入参数 8 并输出结果。
正方形周长 = 4 边长 正方形面积 = 边长 边长
def getSize(length):
perimeter = 4*length
area = length*length
return perimeter,area
result = getSize(6)
print(result)
result = getSize(8)
print(result)
刚才农场主在函数中使用了 print()
,程序输出了圈地面积,但是不能在函数外比较数据的大小。
在函数内使用 print()
可以得到数据,但是这个数据不能在函数外使用。
在函数内使用 return
可以将数据传递到函数外。
学完了函数结构中的每个部分,总结⼀下函数的结构。
函数名
为函数取名是为了方便我们重复使用。在 Python 中,函数的命名规则和变量类似。
参数
参数可以理解为函数的输入。
形参指定义函数时设置的参数名称,实参指调用函数时实际传递的数据。在本例中,num 为形参,8 为实参。
参数可以定义多个,也可以不定义。如果参数不止一个,多个参数之间用英文逗号 "," 隔开。
函数体
函数体是函数内部实现特定功能的代码。就像做菜之前需要先想好具体的烹饪方式,等到做菜的时候再使用一样。
在本例中,函数体是为了计算一个数的二次幂(平方)和三次幂(立方)。
返回值
返回值可以理解为函数的输出。
就像对做菜的原材料进行烹饪加工,最后会得到我们想要的菜品一样,函数经过内部代码的执行也会产生一个结果。
这个结果可以是具体的值,也可以是一项具体的操作。
调用函数
在代码中使用我们已经定义好的函数,这个过程称为调用函数。
调用函数获得的返回值,可以用一个变量存储下来,就可以在函数外使用这个数据了。
代码小结
函数的结构
学习了函数结构后,还有一类函数就不得不提。
既然函数的使用顺序是先定义后调用,之前使用的很多函数, 比如 print()
,range()
,append()
等等,它们没有被我们定义,为什么还能直接被使用呢?
是因为,在 Python 中还有一类函数叫内置函数。
内置函数
和其他编程语言一样,Python也会将一些经常使用的函数预先写好,内置在编程环境中,提供许多常用的基本功能。
这些函数不需要我们去定义,可以直接使用,也被称为内置函数。
程序中使用内置函数也就是在调用函数。
例如,调用len()
函数,它可以返回字符、列表、元组等长度或元素个数。
如图所示:
len
为函数名;
()
为调用符号,在此处执行该函数中的代码;
列表 ["a","b","c","d"]
为实参。
程序将 len(["a","b","c","d"]) 的返回值 4 ,赋值给变量data;接着,输出变量data。