什么是函数?
函数是组织好的、可重复使用的、用来实现特定功能的代码片断。
要输入,直接调用 input();要输出,直接调用 print()。因为 input()、print()是Python的内置函数:
- 是提前定义好的
- 可以重复使用
- 实现特定功能的
max(), min(), len(), sum()也是Python的内置函数。
函数:函数基础、函数进阶。
函数基础
- 函数定义
- 函数的参数与返回值
- 函数说明文档
- 案例
函数定义
函数定义与调用
注意:函数定义时的参数列表与返回值语句是可有可无的(由需求确定),函数必须先定义后调用执行(函数定义时,内部代码并未执行,在调用时才执行)。
# 函数定义 def out_line(): print("--------------------") # 可以在一个函数内调用另一个函数 # 函数调用 out_line()函数使用的注意事项:
1. 函数必须先定义,再调用
2. 函数定义时,并不会执行,只有在调用函数时,函数体的逻辑才会运行
3. 函数中通过缩进来描述归属关系
函数的参数与返回值
在定义函数时,根据业务需要,可以指定参数与返回值,具体格式如下:
注意:return语句必须出现在函数的末尾:一旦return了,就表示函数走到这就结束了、就已经返回了,其后如果函数体还有代码是不会执行的。
注意:函数定义时如果有多个参数,多个参数之间使用逗号(,)分隔。
注意:return 语句只有返回功能,而没有输出打印的功能,如果要输出,需要结合print()函数来实现。
- 形参(形式参数):函数定义时括号里的参数,只能在函数内使用(局部变量)。
- 实参(实际参数):函数在实际调用时传入的参数。
在调用函数时,所传入的实参的顺序要与形参的顺序保持一致。
# 函数1:计算圆的面积 def circle_area(r): area = 3.14 * r **2 return area area = circle_area(10) print(area) # 函数2:计算长方形的面积 def rectangle_area(l,w): area = l * w return area print(rectangle_area(10,5)) # 函数3:计算圆的面积,周长--->如果返回值有多个,多个返回值之间逗号分隔--->多个返回值会封装到元组中 def circle_area_len(r): # return 3.14 * r**2, 2*3.14*r # (314.0, 62.800000000000004) return round(3.14 * r *r,1), round(2 * 3.14 * r,1) # 用round解决精度的问题,保留1位小数。 al = circle_area_len(10) print(al) # (314.0, 62.8) print(type(al)) # <class 'tuple'> area, len = circle_area_len(10) # 解包 print(area) print(len) print(area, len) # 314.0 62.8函数的说明文档
函数的说明文档(Docstring)是写在函数开头,用三个引号包裹的字符串,用于解释函数的功能、参数、返回值等信息,方便调用者清楚函数的具体作用及细节。
小技巧:按住ctrl,把鼠标放在print函数上一点击,会弹出print函数的专门说明文档。
记住:好的文档,能让你的代码更容易理解、使用和维护!
# 函数2:计算长方形的面积 def rectangle_area(l,w): """ 该函数根据长方形的长度和宽度,计算长方形的面积 :param l:长度 :param w:宽度 :return:长方形的面积 """ area = l * w return area help(rectangle_area) #rectangle_area不要加括号,加括号是调用函数 print(rectangle_area(10,5)) # 函数3:计算圆的面积,周长--->如果返回值有多个,多个返回值之间逗号分隔--->多个返回值会封装到元组中 def circle_area_len(r): """ 根据圆的半径,计算圆的面积和周长 :param r: 半径 :return: 圆的面积,圆的周长 """ # return 3.14 * r**2, 2*3.14*r # (314.0, 62.800000000000004) return round(3.14 * r *r,1), round(2 * 3.14 * r,1) # 用round解决精度的问题,保留1位小数。 al = circle_area_len(10) print(al) # (314.0, 62.8) print(type(al)) # <class 'tuple'> area, len = circle_area_len(10) # 解包 print(area, len) # 314.0 62.8声明:本篇学习笔记参考黑马程序员相关课程,部分素材来源于网络公开资料及本人补充;文中为个人整理复盘,仅供学习交流使用。