递归7

1.0递归函数

在一个函数体内部,调用这个函数本身

def fib(n):

  if n==1:
    return 1
  if n==2:
    return 1
  else:
    return fib(n-1)+fib(n-2)
print(fib(90))

2.0匿名函数(lambda)

  • 格式
lambda paral,para2,....,paraN:expression using paras(定义函数表达式)
f =lambda x,y,z  : x+y+z #x等可以有默认值
print(type(f))
print(f(1,2,3))
#6

3.0高阶函数

高阶函数:把一个函数名,以实参的形式,传递给这个函数的形参,这个函数就成为高阶函数。

def pow(x):
  return x**2
def add(a,b,func):
    return func(a)+func(b)
a_value = add(-9,1,pow)
print(a_value)
#81
def start(sr):
  return sr.startswith('c')
def end(sr):
  return sr.endswith('ty')
li = ['zhejiang','university','city','college']
def filter_1(func,para):
     ret=[]
     for i in para:
        if not func(i):
           ret.append(i)
     return ret
print(filter_1(start,li))
print(filter_1(end,li))
print(filter_1(lambda sr:sr.startswith('c'),li))
#['zhejiang', 'university']
#['zhejiang', 'college']
#['zhejiang', 'university']

4.0filter 函数

f1=filter(lambda sr:not sr.endswith('ty'),li)
print(list(f1))

功能:

  • 过滤掉序列中不符合函数条件的元素。当序列需要保留的元素可以用某些函数描述时,就应该想到filter函数。
  • 调用格式:
filter(function,sequence)
+ function--->可以是自定义的函数,也可以是匿名函数
+ sequence--->列表,元组,字符串
li = ['zhejiang','university','city','college']
f1=filter(lambda sr:not sr.endswith('ty'),li)
print(list(f1))
#['zhejiang', 'college']

5.0map 映射

功能

  • 求一个序列或者多个序列进行函数映射后的值。(用list()强转)

格式:

map(function,iterable1,iterable2)
+function的参数可以不止一个
+itercable1,iterable2 就是传入function的参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值