5.1 【基础】普通函数创建与调用 ============================== 函数是一种仅在调用时运行的代码块。您可以将数据(称为参数)传递到函数中,然后由函数可以把数据作为结果返回。 如果将函数比喻成蛋糕店的话,那么函数的参数就是生产蛋糕的原材料,而函数的返回值就是蛋糕成品。 1. 函数的创建 ------------- 在 Python 中,使用 def 关键字定义函数 .. code:: python def 函数名(参数): # 内部代码 return 表达式 举个例子,我这边手动实现一个计算两个数平均值的函数,这边这样子写 .. code:: python def get_average(a, b): ''' 计算平均值 ''' result = (a + b)/2 return result 在定义函数的过程中,需要注意以下几点: - 函数代码块以\ ``def``\ 关键词开头,一个空格之后接函数标识符名称和圆括号(),再接个冒号。 - 任何传入的参数必须放在圆括号中间。 - 函数的第一行语句后可以选择性地使用文档字符串—用于存放函数说明。 - 函数内容以冒号起始,并且缩进。 - 使用return,返回值给调用者,并结束函数。return 关键并不是必须要加,可根据实际需要决定是否要写,若不写的话,默认返回None。 - return语句依然在函数体内部,不能回退缩进。直到函数的所有代码写完,才回退缩进,表示函数体结束。 2. 函数的调用 ------------- 函数编写出来就是给人调用的。要调用一个函数,必须使用函数名后跟圆括号的方式才能调用函数。 调用的同时要根据函数的定义体,提供相应个数和类型的参数,每个参数之间用逗号分隔。 .. code:: python def get_average(a, b): ''' 计算平均值 ''' result = (a + b)/2 return result average = get_average(2, 6) print(average) # output: 4 4. 函数的返回 ------------- 函数的返回值,可以是多种多样的,非常灵活: - 可以是任意类型的对象,比如字符串,数值,列表,字典等等 .. code:: python def demo_func(): return 10 - 可以是一个表达式,函数会直接运行表达式,然后返回 .. code:: python def get_average(a, b): return (a + b)/2 - 可以是函数本身,利用这点可以实现递归调用。 .. code:: python def fact(n): if n==1: return 1 return n * fact(n - 1) - 另外还可以返回多个值 .. code:: python def demo_func(): return 1,2.3 - 可以是其他函数,利用这点可以实现装饰器。这部分属于进阶内容,感兴趣可查看另一章节内容:\ `5.6 精通装饰器的八种用法 `__ .. code:: python def decorator(func): def wrapper(*args, **kw): return func() return wrapper