什么是函数?
函数是组织好的、可重复使用的、用来实现特定功能的代码片断。
要输入,直接调用 input();要输出,直接调用 print()。因为 input()、print()是Python的内置函数:
- 是提前定义好的
- 可以重复使用
- 实现特定功能的
max(), min(), len(), sum()也是Python的内置函数。
函数:函数基础、函数进阶。
函数基础
- 函数定义
- 函数的参数与返回值
- 函数说明文档
- 案例
函数定义
函数定义与调用

注意:函数定义时的参数列表与返回值语句是可有可无的(由需求确定),函数必须先定义后调用执行(函数定义时,内部代码并未执行,在调用时才执行)。
python
# 函数定义
def out_line():
print("--------------------")
# 可以在一个函数内调用另一个函数
# 函数调用
out_line()
函数使用的注意事项:
-
函数必须先定义,再调用
-
函数定义时,并不会执行,只有在调用函数时,函数体的逻辑才会运行
-
函数中通过缩进来描述归属关系
函数的参数与返回值
在定义函数时,根据业务需要,可以指定参数与返回值,具体格式如下:

注意:return语句必须出现在函数的末尾:一旦return了,就表示函数走到这就结束了、就已经返回了,其后如果函数体还有代码是不会执行的。
注意:函数定义时如果有多个参数,多个参数之间使用逗号(,)分隔。
注意:return 语句只有返回功能,而没有输出打印的功能,如果要输出,需要结合print()函数来实现。
- 形参(形式参数):函数定义时括号里的参数,只能在函数内使用(局部变量)。
- 实参(实际参数):函数在实际调用时传入的参数。

在调用函数时,所传入的实参的顺序要与形参的顺序保持一致。
python
# 函数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函数的专门说明文档。
记住:好的文档,能让你的代码更容易理解、使用和维护!
python
# 函数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
**声明:**本篇学习笔记参考黑马程序员相关课程,部分素材来源于网络公开资料及本人补充;文中为个人整理复盘,仅供学习交流使用。