格式
def
函数名
(
参数
1
,
参数
2
):
代码块
函数名(值1,值2)
![](https://i-blog.csdnimg.cn/blog_migrate/505b5378e3706408f447fef0df58ff40.png)
关键字参数
def
函数名
(
参数
1,
参数
2):
代码块
函数名
(
参数
1=
值
1,
参数
2=
值
2)
注意:参数调用时
,
可以改变传参顺序,如果有位置参数需要位置参数放在关键字参数前面
注意:参数调用时,可以改变传参顺序,如果有位置参数需要位置参数放在关键字参数前面如果关键字参数传参要在位置参数之前,将会报错
![](https://i-blog.csdnimg.cn/blog_migrate/d12eb08010cac05fc0eff4e3e1119604.png)
缺省参数
在形参中默认有值的参数,称之为缺省参数
![](https://i-blog.csdnimg.cn/blog_migrate/02632f020b66b98f321c41ac239b31e8.png)
调用函数时,缺省参数的值如果没有传入,则取默认值(形式参数),如果传入,则取实际参数
缺省参数一定要位于位置参数的最后面
不定长参数
有时可能需要一个函数能处理比当初声明时更多的参数, 这些参数叫做不定长参数,声明时不会命名。
格式
def
printinfo
(
*
args
,
**
kwargs
):
print
(
"args:"
,
args
)
print
(
"kwargs:"
,
kwargs
)
printinfo
(
参数
)
注意:加了星号(*
)的变量
args
会存放所有未命名的变量参数,
args
为元组 而加**
的变量
kwargs
会存放命名参数,即形如
key=value
的参数,
kwargs
为字典
args不能接收
key=value
类型的参数
函数返回值
格式
def
sum
():
代码块
return
值
sum
()
![](https://i-blog.csdnimg.cn/blog_migrate/779b08cf79c9c5952a849e255530e6bd.png)
多个return
一个函数中可以有多个
return
语句,但是只要有一个
return
语句被执行到,那么这个函数就会结束
了,因此后面的
return
没有什么用处
函数类型
无参数,无返回值的函数
此类函数,不能接收参数,也没有返回值,一般情况下,打印提示灯类似的功能,使用这类的函数
无参数,有返回值的函数
此类函数,不能接收参数,但是可以返回某个数据,一般情况下,像采集数据,用此类函数
有参数,无返回值的函数
此类函数,能接收参数,但不可以返回数据,一般情况下,对某些变量设置数据而不需结果时,用此类函数
有参数,有返回值的函数
此类函数,不仅能接收参数,还可以返回某个数据,一般情况下,像数据处理并需要结果的应用,用此类函数
匿名函数
lambda函数也叫匿名函数,即函数没有具体的名称
注意
:lambda
函数可以赋值给变量,默认是返回的,所以不用再加
return
关键字
例如g = lambda x:x+1,
可以看成如下函数,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值
局部变量:局部变量,就是在函数内部定义的变量
其作用范围是这个函数内部,即只能在这个函数中使用,在函数的外部是不能使用的
全局变量:在函数外边定义的变量叫做全局变量
全局变量能够在所有的函数中进行访问
注意
:
在函数中出现
global
全局变量的名字 那么这个函数中即使出现和全局变量名相同的变量名
=
数据也理解为对全局变量进行修改,而不是定义局部变量