# 1,什么是递归函数,递归函数是在调用函数本身,直接或者间接调用
# 递归函数有递推和回溯两个阶段
# 递推:一层层地调用自身,进入下一层问题规模必须减少
# 回溯:有一个明确的结束条件,但条件满足的时候一层层回溯
def num(x):
if x==0:
return
num(x-1)
# 二分法:
nums=[1,2,3,4,5,6,7,8,9]
def seach(seach_nums,nums):
if len(nums)==0:
print('have no find')
return
print(nums)
mid_index=len(nums)//2
if seach_nums<nums[mid_index]:
nums=nums[:mid_index]
seach(seach_nums,nums)
elif seach_nums>nums[mid_index]:
nums=nums[mid_index+1:]
seach(seach_nums,nums)
else:
print('find it ')
seach(9,nums)
# 匿名函数:
# res=(lambda x,y:x+y)(1,2)
# 有名函数:基于函数名重复使用
# 匿名函数:没有绑定名字,只用一次即回收
# max,min,map,filter,sorted
# 1max的工作原理
# 1,首先将可迭代对象变成迭代器对象
# 2res=next(可迭代对象).将res当作参数传给key指定函数,然后将函数的返回值当作判断依据
salary={'alex':200,
'egon':2000,
'jayce':188}
def func(k):
return salary[k]
print(max(salary,key=func))
l=[1,2,43,5,6,7,7]
sorted(l,reverse=True)
3,map的工作原理
(1),首先将可迭代对象变成迭代器对象
(2),res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,
然后将该函数的返回值当作map的结果之一
names=['wxx','lxx','zhangmingyan']
aaa=(lambda x:x+'sb' ,names)
print(aaa)
4,filter的工作原理
1首先将可迭代对象变成迭代器对象
2res=next(可迭代器对象),将res当作参数传给第一个参数指定的函数,
然后filter会判断函数的返回值的真假,如果真则留下res
names=['alex','egon','wxx']
aaa=filter(lambda x:x.endswith('sb'),names)
module=input('请输入')
m=__import__(module)
import可导入字符串格式模块名