Day 10 函数基础
什么是函数
函数就是具备某一个功能的工具,实现将工具准备好就是函数的调用,遇到应用场景的时候拿来就用就是函数.
函数的作用
- 把重复的代码写成一个通用的模板
- 可以把冗余的代码独立开
- 解决程序冗余,扩展性差以及可读性差
如何使用函数
函数的使用时先定义,后调用
- 定义函数
函数在定义结算只识别语法,不运行代码
def func()
代码
- 调用函数
调用函数的时候才执行函数体代码
func()
定义函数的三种形式
- 无参函数
def self_max():
x=10
y=20
if x > y:
print(x)
else:
print(y)
self_max()
- 有参函数,有几个参数就必须传入几个参数
def self_max(x,y):
if x > y:
print(x)
else:
print(y)
self_max(10,20)
- 空函数:当想要定义一个函数但不知道怎么写的时候可以先用空函数占位
def self_max()
pass
self_max()
函数返回值
变量名用来接收变量值,函数名用来接收函数的返回值
如果需要在程序中拿到函数处理的结果做进一步的处理是,则需要函数必须要有返回值
- 函数中没有return,则默认返回None
- return可以返回任意数据类型的数据
- 当return返回多个值的时候,会以元祖的形式吧多个值存放在一起
- return是一个函数结束的标志,函数内可以有多个return,只要执行到return,函数就会停止
函数参数的应用
形参和实参
函数分为两个阶段
定义阶段:定义阶段括号内定义的参数,称为形参,形参具有描述意义,类似变量名,不为具体的数据类型
def func(x,y)
调用阶段:调用阶段括号内传入的参数,称为实参,本质类似变量的值,实参必须是具体的数据类型
func(1,2)
位置参数
位置形参
在函数的定义阶段,按照从左到有的顺序依次定义的形参,称之为位置形参
特点:按照位置定义的形参,都必须被传值,多一个不行,少一个也不行deffunc(x,y)
位置实参
在函数调用阶段,按照从左到右的顺序依次定义的实参,称之为位置实参
特点:按照位置为对应的位置形参依次传值func(1,2)
关键字实参
在调用函数阶段,以key=value的形式为对应的形参传值,称之为关键字实参
特点:可以打破位置的限制,为制定的形参赋值
func(x=1,y=2)
注意:可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的前面,并且不能对一个形参重复赋值
默认形参
在函数的定义阶段,提前赋值给形参,当你实参传值的时候,实参穿的值会覆盖默认值
默认形参必须放在位置形参的后面
默认形参的值只在定义阶段赋值一次,也就是说默认参数的值在函数定义阶段就已经固定了,只有传入实参的时候才会被覆盖
默认参数的值通常是不可变类型
可变长参数
指的是在调用函数的时候,传入的参数个数可以不固定
可变长形参 *args
接收所有位置实参,然后以元祖的形式保存下俩,只接收位置参数,不接收关键字实参
可变长形参 **kwargs
接收所有的关键字实参,然后以字典得形式保存下来