这两天写文章写得快吐了,写完信息安全的读书笔记然后又写一个软件使用教程,难受了。不过坚持住就好,继续奋斗吧。
来来总结一波:
今天学习了lambda匿名函数、一些重要的内置函数如:abs、sum、max、min、zip、sorted、filter、map
一般性重要的是:bytes、int、chr、ord、bin、oct、hex、repr、all、any等
01lambda函数lambda函数又称为匿名函数,从语法上看它就是一个函数,而且功能还很简单。
1#语法:2func=lambada形参:结果34func1=lambdaa,b:a+b5func1(1,2)#3
但是Python为什么还要单独搞一个匿名函数呢?答案是自有其道理的。一般lambda是与其他匿名函数组合使用,起到超重要的作用。
例如:和sorted函数配合使用,使用lambda可以将其成员中的一部分作为排序依据。
1dic={"name":"13",hobby:,age:14}23#1.默认排序4print(sorted(dic))#[age,hobby,name]5#2.使用值作为排序依据,从小到大6sorted(dic,key=lambdaa:int(dic[a]),reverse=False)#[name,age,hobby]02内置函数
内置函数是Python中最重要的亮点之一,有些函数真的可以让你一行低十行。
.1重要函数这是必须掌握的函数,一定要记住。
1.sum(iterable):求一个迭代对象的所有元素的和
2.max(iterable,key=lambdax:x)/min():求迭代对象中的元素的最大值或最小值
1#今天写的内置函数都是非常重要的23lis=[1,2,3,4,5]4dic={"name":"13",hobby:,age:14}#1.sum89print(sum(lis))#print(sum((1,2,3,4,5)))##2.maxmindefmax_test(x):15returnint(dic[x])16max(lis)#max(dic,key=lambdax:int(dic[x]))#hobby18max(dic,key=max_test)#hobby19#可以看出,key也同样可以用一个函数替代lambda,也说明lambda就是简单的函数
3.zip([iterable,…]):又称拉链函数,将几个可迭代对象中的数据打包成一个元组,这个功能太实用了。
4.sorted(iteable,key=,reverse=True/False):对里面的迭代对象进行排序,生成一个新的list列表对象,可以添加key控制排序依据。reverse=True则为从大到小,默认是False从小到大。
1#3.zip函数23lis1=[1,2,3]4lis2=(4,5,6)5lis3=(7,8,9)6zip(lis1,lis2,lis3)#4.sorted函数10dic={"name":"13",hobby:,age:14}11lis=[23,4,5,1,9,6]print(sorted(dic,key=lambdax:int(dic[x])))14print(sorted(lis,reverse=True))
5.filter()函数,相当于是列表推导式中的筛选模式。map()函数,相当于是列表推导式中的循环模式。
1#5.filter函数2lis=[23,4,5,1,9,6]3deffunc(x):4returnxf1=filter(lambdax:x6,lis)7print(list(f1))#[23,9]8print(list(filter(func,lis)))#[23,9]#6.map函数12f2=map(lambdax:x+2,lis)13print(list(f2))#[25,6,7,3,11,8].2常用函数
熟练掌握即可
1、int(x,base=6),将x转成base进制的数
2、divmod(x,y),返回x除以y的商和余数。
3、round(2.8,1),返回指定小数位数的浮点型
4、pow(base,index),幂指数
1#1、int2int(3.5)#3float转int型3int(,base=2)#4其他base进制字符串转整型45#2、divmod6divmod(9,2)#(4,1)78#3、round9round(3.14,1)#3.round(3.16,1)#3.#4、base13pow(2,4)#16
5、repr("python"),返回带有引号的字符串。
6、all(iterable),可迭代对象中全都是真则返回True。any(iterable),若有真就返回True
1#5、repr2print(repr("python"))#python#6、all、any6lis=[1,2,,True]7lis2=[1,2,,True]89all(lis)#True10all(lis2)#Falseany(lis)#True13any(lis2)#True
7、bytes(),将字符串指定编码方式进行编码,如不懂编码,可以看***
1#7、bytes23b1=bytes(name,encoding=utf8)4print(f"b1:{b1},type:{type(b1)}")5#b1:bpython,type:classbytes67print(bytes("西",encoding=gbk))#b\xce\xf78print(bytes("西",encoding=utf8))#b\xe8\xa5\xbf03闭包
闭包是什么?闭包是嵌套在函数中的函数,且对外层函数中的变量的引用。
1deffunc(age):2name=python3definner():4print(name)5print("内层函数inner被调用")6returninner7returninner89res=func(17)10print(res)11print(res())#functionfunc.locals.innerat0x7fbfe22f#python16#内层函数inner被调用17#inner
闭包可以避免函数中的一些非全局变量被销毁,可以直接在内层函数中使用。
我觉得闭包其实就是为了后面的装饰器打基础的。
last总结今天的重点是掌握一些重要的内置函数以及lambada匿名函数的用法,还是多看多练多总结!
END