'''
函数
格式:
def 函数名(参数列表):
语句
return 表达式
'''
def fun(x,y):
sum = x+y
return sum
res = fun(1 ,2)
print(res)
#注意值传递 :数字,字符串,元组
def fun1(num):
num = 10
a=20
fun1(a)
print(a)
#注意引用传递 :字典 列表
def fun2(arr):
arr.pop()
li=[1,2,3,4,5]
fun2(li)
print(li)
#在调用函数时,如果没有传递参数,就使用默认参数的值
def fun3(name,age=19):
print(name,age)
#不定长参数:能处理比当初定义时更多的参数 args是一个元组,可以存参
def fun4(name,age,*args):
print(type(args))
#不定长参数的第二种方式,最后一个参数是字典
def fun5(name,age,**kwargs):
print("%s is a good man! he is %d years old!"%(name,age))
print(type(kwargs),kwargs["x"])
fun5("sunck",18,x=1,y=2,z=3)
#返回值可以一次性返回多个值
def fun6():
return 1,2
x,y = fun6()
z = fun6() #返回元组
print(x,y)
'''
匿名函数:不在使用def语句这样标准的形式定义函数,使用lambda来创建匿名函数
特点:
1、lambda只是一个表达式,函数体比def简单得多
2、lambda主体是一个表达式而不是代码块,仅能在lambda表达式中封装有限的逻辑
3、lambda函数拥有自己的命名空间,且不能访问自由参数序列之外或全局命名空间里的参数
4、虽然lambda函数只能写一行
'''
sum = lambda x,y:x+y
print(sum(1,2))