Python快乐编程基础入门,第八章函数下

#函数(下)
#间接调用函数
def output(m):
    print(m)
x=output
x('间接调用')

#匿名函数,没有函数名称、临时使用的微函数
#lambda[arg1[,arg2....]]:表达式
sum = lambda num1,num2:num1+num2
print(sum(4,5))

def fun(num1,num2,func):
    return func(num1,num2)
print(fun(8,6,lambda num1,num2:num1+num2))

info=[
    {'name':'xiaoming','score':'99'},
    {'name':'xiaofeng','score':'90'},
    {'name':'xiaohong','score':'89'}
    ]
#按姓名字母由大到小排序
info1=sorted(info,key=lambda x:x['name'],reverse=True)
print(info1)
#按分数由小到大
info2=sorted(info,key=lambda x:x['score'])
print(info2)

#闭包
#通过return返回一个变量,也可以返回另一个函数名                       
list=[1,2,3,4]
def f2(list):
    def f1():
        return sun(list)
    return f1
x=f2(list)
print(x())
#外层函数返回内层函数名:闭包

#装饰器
#可以让其他函数在不做任何代码修改的前提下增加额外功能
def f3(arg='装饰器的参数'):
    def f2(func):
        def f1():
            print(arg)
            return func()+1
        return f1
    return f2
@f3('带参数的装饰器')#连接装饰器和被装饰器
def func():
    print('func()函数')
    return 1
print(func())
#输出:带参数的装饰器,func()函数,2

#偏函数
def myadd1(a,b,c):
    return a+b+c
def myadd2(a,b):
    return myadd1(a,b,122)
print(myadd2(1,11))

eval()
eval(source,globals=None,locals=None)
#对动态表达式求值
print(str,'的结果为',eval(str))#.....的结束为...

exec()
exec(source,globals=None,locals=None)
#用于动态语句
exec(str)

compile()#将一个字符串编译为字节代码
co=compile(str,'','exec')
exec(co)

map()#对列表和其他序列中的每个元素进行同一个操作并将其结果集合起来
list1=[1,2,3,4]
func=lambda x:x+10
list2=list(map(func,list1))
print(list2)

filter()#对指定序列进行过滤操作
#他所引用的函数只能接受一个参数
seq=['qianfeng','codingke.com','*#$']
func=lambda x:x.isalnum()
list=list(filter(func,seq))
print(list)#['qianfeng']

zip()#将一系列可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的迭代对象
#将列表1的第一个元素和列表2的第一个元素组成一个元组,取最短

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值