函数的定义
def <函数名>(参数)
<函数体>
return <返回值>
-函数定义时,参数是一种占位符
-函数定义后,若不被调用,则不会被执行
-函数定义后,参数是输入,函数体是处理,结果是输出。
也就是说,函数是IPO的一种形式。
(函数可以有参数,也可以没有,但必须保留函数名后的括号)
可选参数传递
-函数定义时可以为某些参数指定默认值,构成可选参数
def <函数名>(非可选参数,可选参数)
<函数体>
return <返回值>
m为可选参数,若没有m的设置,m默认为1
-改变参数数量的函数
def <函数名>(固定参数, *b)
<函数体>
return <返回值>
*b为可变参数,指数量可变
参数返回值
-return保留字来传递返回值
-函数的返回值可有可无,return返回字也可有可无
-return可以传递0个返回值,也可以传递多个返回值
返回多个返回值时,返回的类型为元组类型,元组类型即为将列表类型的方括号换成小括号;
也可以如下这样:
局部变量和全局变量
-局部变量是函数内部的占位符,与全部变量可能重名,但不同
-函数运算结束后,局部变量被释放
-可以使用global保留字,在函数内部使用全局变量
global保留字的用法:
-局部变量为组合数据类型,且为被创建,等同于全局变量
#通过使用[],真实创建了一个全局变量列表ls
ls = ["F"]
def func(a) :
#此处ls是列表类型,未真实创建,则等同于全局变量
ls.append(a)
return
#全局变量ls被修改
func("f")
print(ls)
运行结果为: ['F', 'f'] Process finished with exit code 0
ls = ["F"]
def func(a) :
#此处ls是列表类型,是一个真实创建,则ls为局部变量
ls = []
ls.append(a)
return
#局部变量ls被修改,全局变量ls未被修改
func("f")
print(ls)
运行结果为:['F'] Process finished with exit code 0
lambda函数
lambda函数返回函数名作为结果
-lambda函数是一种匿名函数,即没有名字的函数
-使用lambda保留字定义
<函数名> = lambda <参数> : <表达式>