匿名函数、高阶函数、调试
1.匿名函数就是匿名的小型函数,主要作用于函数调用中的参数
1)一个参数
def test_1(i): return i+1 r = test_1(2) print(r)结果为3 #使用匿名函数通过lambda关键字实现 l = (lambda x:x+1) print(l(2))结果为3
2)匿名函数也可以处理多个参数的函数
r = lambda x,y :x+y print(1,2)结果为3
3)主要用于高阶函数调用
def test_2(a,func):#传入匿名函数lambda print('---->',a) r = func(a)#定义变量r接受函数,并传入参数a print('--->',r) test_2(2,lambda x: x**2) 结果为---->2 --->4
2.高阶函数:就是接受函数作为参数的函数,需要通过list()来输出
1)filter函数用于过滤信息
list1 = [('张三',18),('李四',19),('王五',20)] f = flter(lambda x: x[1]>19,list1)#过滤掉年龄小于19的人 print(list(l))#需要通过list来输出,结果为('王五',20)
2)map()函数,用于匿名函数指定内容,进行功能扩展
list1 = [('张三',18),('李四',19),('王五',20)] m =map(lambda x: x[1]+1,list1)#对列表所有的内容进行加1操作 print(list(m))#需要通过list来输出 #结果为('张三',19),('李四',20),('王五',21)
3)reduce()函数,用于函数的运算
先导入from functools import reduce
from functools import reduce list = [1,2,3,4,5] #((((1+2)+3)+4)+5),一层层地进行,先进性(x+y)后面再逐渐累加 r = reduce(lambda x,y: x+y,list) #结果为15
3.调试:用于编程中的编译错误,在代码的左边点击断点,可以根据需求断很多点
1)step over:单步调试,遇到函数直接执行跳过,进入下一个函数
2)step into:一步步执行
3)step into my code :不执行源码的子函数,只执行自己手写的函数
4)step out:跳过当前函数,执行下一步