1. 函数的简介
-
函数也是一种对象
-
函数是用来保存一些可执行的代码,并且在需要时候对这些语句进行多次调用
-
def 函数名(参数1,参数2,参数3...): 代码块
-
需要注意的是
- 函数名必须符合标识符命名规范(可以包含数字,字母,下划线,但是不能以数字开头)
- print是函数对象 print()是调用函数
2. 函数的参数
2.1 形参和实参
- 形参 : 形式参数 定义形参相当于在函数内部声明了变量,但不是赋值
- 实参 : 实际参数 指定了形参那么调用函数时候必须传递实参,实参将会赋值给对应的形参,就是说有几个形参就有几个实参
2.2 函数的传递方式
- 定义形参时,可以为形参指定默认值,指定默认值以后如果用户传递了参数则默认值不会生效。如果用户没有传递,默认值就会生效。
- 位置参数 : 就是将对应位置的实参赋值给对应位置的形参
- 关键字参数 : 可以不按照形参定义的顺序去传递,而是根据参数名进行传递
- 混合使用位置参数和关键字参数的时候必须将位置参数写到关键字参数前面
3. 不定长参数
- 定义函数时,在形参前面加一个*,这个形参就可以获取所有的实参,会将所有的实参保存到一个元祖中
- 带*的参数只能有一个,多个会报错,可以和其他参数配合使用
- 带*的形参只接受位置参数,不接受关键字参数
- 带**的形参可以接受其它关键字参数,然后将这些参数保存到一个字典中。字典的key值就是参数名,value值就是参数的值
- 带**的参数只有一个,多了报错,须写在其他参数后面
-
def 函数名(a, b, **c): 代码块
4. 参数的解包
- 传递实参时,可以在序列类型的参数前添加*,这样会将序列中的元素依次作为参数传递
- 要求序列中的元素个数和形参的个数一致