Python函数
一、函数
1.内置函数
参考:https://docs.python.org/zh-cn/3/library/functions.html
内置函数 | ||||
---|---|---|---|---|
2.自定封装函数
2.1关键字def,语法
函数的定义:关键字:def
语法:
def 函数名():
#函数体(函数内部的代码)
关键字:pass:没有语义,表示一行空的代码(占个位置)
二、函数的返回值return
1.retuen
- 函数调用之后返回值是由return来决定的
- 函数没写return,函数返回的内容为None(为空)
- return后面写什么,函数返回的就是什么
2.return的作用
- 返回值数目=0,返回None
- 返回值数目=1,返回object
- 返回值数目>1,返回tuple
三、函数的参数
1.参数的定义:
函数名后面的括号中定义参数
2.形参和实参
- 在定义函数的时候,定义的参数为:形参(形式上的参数,并没确定值是多少)
- 在调用函数的时候,传入进行的参数为:实参(实际的参数)
- 形参是用来接收实参传递的值的
3.形参规则:
3.1.必须参数(必备参数):定义了几个就要传几个,不能多也不能少
3.2.默认参数(缺省参数):定义的时候给一个默认值,调用函数时,该函数可以传,也可以不传,(不传使用默认值)
3.3.不定长参数(动态参数):可以用例接收0个或者多个参数(可接收的参数不限定长度【个数】)
- *args:可以用来接收0个或者多个参数(只能接收以位置传参方式传递的参数),以元组形式保存
- **kwargs:可以用来接收0个或者多个参数(只能接收以关键字指定参数传参方式传递的参数a=11),以字典形式保存
- 不定长参数必须定义在默认参数和必须参数之后【顺序:必须参数->默认参数->不定长参数】
*和**为不定参数的定义,使用的过程中不需要加
4.拆包和打包:*,**
- * 可以用来对元组/列表/字符串进行拆包(应用场景调用函数传递参数的时候)
- ** 可以用来对字典进行拆包
注意点:使用*和**拆包,只能调用函数传参的时候使用
打包
定义参数的时候在参数前面,加个*或者**,那么这个参数就是一个不定长参数
- 带有一个*的不定长参数,会接收到的参数,打包成一个元组
- 带有两个**的不定长参数,会接收到的参数,打包成一个字典
拆包:方法二
# 注意拆包的数量需要与参数的数量一致,否则只能一个一个进行拆包
- func4(*li) #对列表进行拆包 *
- func4(*tu) #对元组进行拆包 *
- func4(**dic) #对字典进行拆包 **
例子:
# 默认参数
def func(a,b=99):
print("a的值{}".format(a))
print("b的值{}".format(b))
return a+b
res=func(11)
print(res)
# 不定长参数:*args
def func2(a, b=99, *args):
print("a的值{}".format(a))
print("b的值{}".format(b))
print("*args的值{}".format(args))
return a + b
res2 = func2(11, 22, 33)
输出:
a的值11
b的值22
*args的值(33,)
# 不定长参数:**kwargs
def func3(a, b=99, **kwargs):
print("a的值{}".format(a))
print("b的值{}".format(b))
print("**kwargs的值{}".format(kwargs))
return a + b
res3 = func3(a=11, b=22, c=33)
输出:
a的值11
b的值22
**kwargs的值{'c': 33}
def func5(*args,**kwargs):
print("*args的值{}".format(args))
print("**kwargs的值{}".format(kwargs))
func5(11,22,a=11,b=33)
输出:
*args的值(11, 22)
**kwargs的值{'a': 11, 'b': 33}
四、实参规则
1.按位置顺序进行传递,这种传参的形式叫位置参数(通过参数的位置顺序进行传递)
2.通过参数名指定参数进行传递,这个传参形式叫做关键字参数(通过参数名指定传参)
例子
例子1:位置传参
# 需求一:定义一个可以实现任意两个数相加计算的函数,返回相加的结果
def func4(a,b): # a,b属于必须参数
return a+b
res=func4(100,200)
print("res",res)
输出:300
例子2:关键字传参
def func7(a,b):
print("a的值为{},b的值为{}".format(a,b))
return a+b
n=func7(a=200,b=300)
输出:a的值为200,b的值为300
3.什么是实参,什么是形参?
定义时小括号中的参数,用来接收参数用的,称为形参
调用时小括号中的参数,用来传递给函数用的,成为实参
4.参数传递的两种形式:
位置参数:位置参数(按位置进行传递)
关键字参数:通过关键字指定传给某个参数