1.函数的基本结构
把N行代码定义成一个变量,后面直接调用变量即可.
可读性强,可重用性强.
#关键字 变量名:
def 变量名(形参):
函数体#保持缩进一致
return "可以加返回值"#返回值默认是none
变量名(实参)#调用函数
2.函数的返回值
函数是没有返回值的,默认是None
def 函数名(): #定义
函数体
return x #返回值x,不填默认None,函数运行到返回值便不再往下运行,
print(函数名()) #调用函数,输出返回值
del 函数名():
函数体
return 6,7,"alex"
#如果return后面跟的是多个值,这时默认返回的是元组类型
#如果是运算类型则先运算再返回
3.函数的参数
实参角度:
- 位置参数。
- 关键字参数。
- 混合参数。
形参角度:
- 位置参数。
- 默认参数。
- 动态参数。
- 仅限关键字参数。(了解)
1.位置传参,
按位置挨个代入,要从左往右按照顺序,一一对应,不能多或少
def func(a1,a2):
函数体
func(1,2) #a1=1,a2=2
2.关键字传参
- 位置传参在前,关键字在后
- 要一一对应,不能多或少
def func(a,b,c):
函数体
func(1,2,c=3) #c=3是关键字参数
3.默认参数
def func(a,b=2,c=3):
函数体
func(1) #b默认等于2,c=3,传入其他值则修改.
#此时a为1,b和c为默认值,
func(1,2,3)
#此时a为1,b为2,c为3
4.万能参数
-
*args接收多个位置参数
-
只支持位置传参
def func(*args): print(args) func(1)#输出的结果是(1,)是元组类型 fun((1,2,3))#输出的结果是((1,2,3),)嵌套元组 fun(*(1,2,3))#输出的结果是(1,2,3)元组
def fun(a1,*args): print(a1,args) fun(1,2,3)#其中a1是1,args是(2,3) #不能用关键字传参.万能参数放在后面
def func(*args,a2): print(args,a2) func(1,2,3,4,5,a2=1)形参关键字在后面时可以用关键字传 #输出为(1,2,3,4,5)1
-
-
**kwargs接收多个关键字参数
def func(**kwargs):
print(kwargs)
func(name="alex",age=40)
#输出的结果为字典
#{"name":"alex","age":40}