函数的参数
1.函数的返回值
def home():
print(123)
# return # 代码走到这立刻结束
# print('hello')
return 1, 2, 3 # (1, 2, 3)
关键字:return
1.每当一个函数不是必须要有返回值,可有可无。
2.只有是在return后面的关键字才是函数的返回值。
3.一个函数只能拥有一个返回值,在函数体遇到return时会直接退出。
4.return后面可以返回多个值但是要用逗号隔开,返回时是以元组的形式。
2.函数的参数分为两大类
2.1形式参数
函数在'定义阶段'括号中定义的'变量名'就是形式参数,简称'形参'
def index(a, b):
pass
a,b就是形参
2.2实际参数
函数在'调用阶段'括号中写的'变量值'就是实际参数,简称'实参'
函数在'调用阶段'括号中写的'变量值'就是实际参数,简称'实参'
def index(a, b):
pass
index(1, 2)
1,2就是实参
2.3形参和实参之间的关系
可以把形参名=实参值。也就是变量名=变量值的形式来看。它俩之间只有在函数被调用的时候才有联系。在运行完之后关系也就断了。
函数的形参只有一种形式:变量名
实参有很多种形式:变量名,变量值,函数的返回值。本质:变量值
3.位置参数
位置参数的特点:形参和实参是一一对应的
3.1位置参数
函数在括号中从左往右依次写入的参数就是位置参数
def index(a, b, c):
pass
3.2位置形参
在函数定义阶段括号中从左往右依次写入的变量名就是位置形参
def index(a, b, c):
pass
a,b,c也就是位置形参
3.3位置实参
在函数调用阶段括号中从左往右依次传入的变量值就是位置实参
index(1, 2, 3)
1,2,3也就是位置实参
3.4调用函数
位置参数传递,实参个数少一个不行', 实参个数多一个也不行,参数的个数必须要一一对应
res = my_max(10, 2, 3, 4) # 2 10
res = my_max(10, 2,) # 2 10
print(res)
my_max(y=10, x=20, b=1, a=2) # 指名道姓的传递
res = my_max(b=1, 2) # 不可以,位置参数不能够放在关键字的后面
res = my_max(2,b=1) # 可以,位置参数不能够放在关键字的后面
res = my_max(a=1,2) # 可以,位置参数不能够放在关键字的后面
res = my_max(2,a=1) # 不可以,位置参数不能够放在关键字的后面
'''位置参数不能够放在关键字参数的前面!!! 越短的越靠前'''
关键字参数可以打破按照顺序依次传递的规则
特点:严格按照变量名=变量值的形式一一传递
4.debug模式
1. 先打断点,在代码的左侧点一下鼠标的左键,会出现一个红点
2. 右键选择debug选项
5.默认参数(默认形参,没有默认实参)
定义:在函数的定义阶段就直接赋予变量值。
1.如果你在定义函数时,给形参赋值后,在调用函数后如果没有基于实参,就直接使用默认的值。
2.如果在调用的时候你给了值就使用你给的值就不使用默认的值了。
3.函数在定义阶段,给的默认值直接就定死了,后续不会在改变。
4.根据变量名和变量值的关系来理解。
6.可变长参数
定义:在无论使用多是值中函数都能正常的使用。
在函数中* 或者**后面中的变量可以随便起名但是推荐使用*args**kwargs
args:arguments位置参数
kwargs:keywords arguments关键字参数
6.1*变量
*在使用的过程中会接收多出来的参数值然后整合成元组的形式赋值给*变量
6.2**变量
在使用的过程中将多出来的参数值整合成字典的形式来赋值给**变量
**在实参中使用:会把字典打算成关键字来进行实参的传递。
7.命名关键字参数
命名关键字的传参:在形参中会出现*的用法,如果出现在*号后面的形参,那么,实参传递的时候,必须以关键字的形式传递