版权声明:文章版权归本博客所以未经许可不能转载 https://blog.csdn.net/u011738045/article/details/82459384
什么是函数
对重复利用的代码进行封装,写成独立模块,这种定义过程就是函数
def fun(): #def 定义关键字, fun() 函数名 print(a) #重复抽离的代码块
函数的使用
函数名() 这就是函数的调用 fun()就是调用刚才定义函数
带有参数的函数
def fun(a,b) #a,b,表示参数名字随意,多个参数用逗号隔开,这个参数也叫形参,
调用的使用fun(1,2)参数要一一对应这个是参数叫实参
函数的返回值
def fun(): a=1; b=2; c=3 #return (a,b,c) #返回一个元组 return a,b,c #分别返回a,b,c,但实际结果返回的也是一个元组形式和第一个一样 #return功能,执行函数返回的内容,还有结束函数的执行,如同break一样结束循环,一个函数中也可以返回多个值,封装就行
函数的类型
def a(): pass #无返回值,无参数 def d(): return #无参数,有返回值 def b(a, b): pass #有参数,无返回值 def c(a, b): return a #有参数,有返回值
函数的嵌套调用
在一个函数的调用过程中,再次调用另一个函数,就是函数的嵌套调用
典型例子,递归算法
匿名函数
# 匿名函数定义 # lambda 参数:式子 lambda x, y: x + y # 冒号前面就是普通函数的形参,后面位置相当于普通函数return 后面内容也就是表达式,这个函数没有名字,lambda只是函数的定义格式而已要想使用必须找一个变量保存下来 func = lambda x, y: x + y # 要运行这个函数的使用就是这个函数名加括号 也就是 》》func(参数,参数) func(1, 2) # 匿名函数和普通函数的区别 # 匿名函数默认有返回值, 普通函数没有返回值 # 匿名函数后面的表达式 相当于普通函数return的内容 就是表达式不能有代码语句 # 使用场景 # 可以用于字典排序 info = [{"name": "Tom", "age": 18}, {"name": "Jack", "age": 19}] info.sort(key=lambda x: x["age"]) print(info) # 可用于函数参数,扩充函数功能 def a(c, d, fun): result = func(c + d) print(result) a(1, 2, lambda x, y: x + y) # 因为匿名函数写的是白表达式 # python动态语言,可以在运行的时候修改代码运行 # Python2inpu("")输入任何东西当做一个表达式来执行, 而Python3input("")输入的东西都当做字符串来处理 ,所以可以用eval(内容)这个时候就可转换成表达式