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