一、函数
什么是函数?
类似一个封装体,它是组织好的,可重复使用的,实现相关功能的代码段
函数的特性有:减少重复代码;使程序变的可拓展;使程序变的易维护
二、定义函数
语法:
def 函数名(参数1,参数2,参数3,...): #函数名要见名思意
'''注释'''
函数体
return 返回的值
三、函数的调用
1.调用函数
格式:函数名()
def star():
print("you are beautiful girl")
star()
2.函数返回值
函数在执行过程中只要遇到return语句,就会停止执行并返回结果
如果未在函数中指定return,那这个函数的返回值为None
什么时候函数需要返回值,什么时候函数不需要返回值?
通常有参函数需要有返回值,通常无参函数不需要有返回值
四、函数的参数
形参
1.位置参数必须传值
1 def func(a, b):2 the_max = a if a > b elseb #三元运算3 returnthe_max4 res = func(3, 5)5 print(res)
2.默认参数(不传值就会显示默认的值)
1 def people(name, sex="男"):2 print(name,sex)3 people("xfxing")4 people("alex", "gay")
实参
1.按位置传值
2.按关键字传参
3.混合传参 关键字参数永远在位置参数之后
defmy_sum(x, y):return x +y
num1= my_sum(10, 20) #位置参数
num2 = my_sum(x=20, y=99) #关键字传参
num3 = my_sum(1, y=88) #1--位置参数,y=88--关键字参数
print(num1, num2,num3)
动态传参
动态参数也叫非固定参数,需要传的参数个数不定,可用“args”,“kwargs”接收
1.agrs是元组的形式,接收除去键值对以外的所有参数。
2.kwargs接受的只是键值对的参数,并保存在字典中。
如果不确定要传的参数,最好使用非固定参数(万能参数)
def stu_register(name, age, *args, **kwargs):print(name, age, args, kwargs)
stu_register("alex", 22)
stu_register("Boy", 21, "linux", "python")
stu_register("washington", 22, "linux", "java", "python", sex="男", province="JiangXi")
五、嵌套函数
name = "御姐" #外层定义的变量
defwrapper():
name= "小可爱" #外层函数定义的变量
definner():
name= "萝莉" #内层函数定义的变量
print(name)
inner()print(name)
wrapper()print(name)
View Code
六、匿名函数(lambda函数)
就是不