函数能够分为内置函数 和 自定义函数。此次关注的主要是自定义函数。定义函数以后,就能够在任何须要它的地方调用。函数
1 返回值的重要性变量
返回值的3种状况 数据类型
没有返回值 ---- 返回None数据
不定 return注释
只写 return :结束一个函数字典
return None ---- 不经常使用习惯
只有一个返回值return
能够返回任何数据类型参数
只要返回就能够接收到
若是一个函数中有多个return ,那么只执行第一个
返回多个值
用多个变量接收:有多少个返回值就用多少个变量接收
用一个变量接收:获得一个元组
2 参数
形参:
实参:
没有参数
定义函数和调用函数时括号里都不写内容
有一个参数
传什么就是什么
有多个参数
位置参数
站在实参的角度上:
按照位置传参
按照关键字传参
混着用是能够的,可是必须先按照位置传参,再按照关键字传参数;不能能够同一个变量传多个值
站在形参的角度上:
位置参数:必须传,且有几个参数就要传几个值
默认参数:能够不传,若是不传就用默认参数,传了就用传的
只有调用函数时候:
按照位置传:直接写参数的值
按照关键字传:关键字 = 值
定义函数的时候:
位置参数:直接定义参数
默认参数,关键字参数: 参数名 = ‘默认的值’
动态参数:能够接受任意多个参数
参数名前加 * ,习惯用 *args(接收的是按照位置传参的值,组织成一个元组)
参数名前加 ** ,习惯用 **kwargs(接收的是按照关键字传参的值,组织成一个字典)
顺序:位置参数,*args,默认参数,**kwargs
在形参的角度上,给变量加上一个 * ,就是组合全部传过来的值
在实参的角度上,给一个序列加上 * ,就是将这个序列按照顺序打散
3 函数的注释
def func()
''''
这个函数实现了什么功能
参数1:......
参数2:......
return:返回的东西是什么
'''
4 函数上面的小坑
若是定义的时,形参的默认参数是一个可变数据类型,若是不传值调用,调用都会用同一个(就是重复用这个)