1.递归调用:在一个函数调用的过程中,直接或间接又调用了自身,就是递归调用
2.递归必备的两个阶段:1.递推 2.回溯
总结:#总结递归的使用:
1. 必须有一个明确的结束条件2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少
3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构
实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大
小不是无限的,所以,递归调用的次数过多,会导致栈溢出)
3.匿名函数:fun=lambda x,y,z=1:x+y+z
#有名函数与匿名函数的对比
有名函数:循环使用,保存了名字,通过名字就可以重复引用函数功能
匿名函数:一次性使用,随时随时定义
应用:max,min,sorted,map,reduce,filter
a={'aa':1000000,'bb':9999999,'cc':10111111}
print(max(a,key=lambda k:a[k]))
print(min(a,key=lambda k:a[k]))
4.内置函数:
enumerate()将值和索引达成元素的迭代器
eval()将字符串中的代码提取出来,exec也是此功能。只是没有返回值
pow():pow(2,3,3)#(2**3)%3
round(num)四舍五入