函数补充

全局变量和局部变量

a=6
def foo():
    print(a)
    a=66
foo()

输出:
报错(内部和外部a重名,会优先搜索内部a,但是print在定义a之前所以报错)
glabal
a=6
def foo():
   global a    #相当于调用a
   print(a)
   a=66
   print(a)
foo()
print(a)

输出:
6
66
66
a=6
def foo():
    a+=1
    print(a)
foo()

报错
li=[1,2]
def foo():
    li.append(3)
    print(li)
foo()

输出:
[1, 2, 3]

递归函数

在一个函数内部调用函数本身

#斐波那契数列
def func(n):
    if n==1:
        return 0
    elif n==2:
        return 1
    else:
        return func(n-1)+func(n-2)
print(func(4))

匿名函数(lambda)

格式:

lambda para1,para2:表达式

可不填形参

function = lambda x,y:x+y
print(function(1,2))

输出:3

高阶函数

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

def pow(x):
    return x**2
def add(a,b,func):
    return func(a)+func(b)

print(add(1,2,pow))

filter函数

功能:过滤掉序列中符合函数条件的元素。当序列中需要保留的元素可以用某些函数描述时,就应该想到filter函数

filter(function,seq)

li = ['zhejiang','university','city','college']
f = filter(lambda para:not para.endswith('ty'),li)
print(list(f))

输出:
['zhejiang', 'college']

map映射

功能:求一个序列或者多个序列进行函数映射后的值(最后用list()强转)

格式

map(function,iterable1,iteralbe2)

– -function的参数可以不止一个

—iterable1,iterable2就是传入function的参数

li=[1,2,3,4]
res=map(lambda x:x+1,li)
print(list(res))

输出:
[2, 3, 4, 5]

reduce函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值