Day 12 内置函数,装饰器
01 昨日内容回顾
02 作业讲解
03 内置函数
python给我们提供了一些他认为你常用的函数 1.print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) file: 默认是输出到屏幕,如果设置为文件句柄,输出到文件 sep: 打印多个值之间的分隔符,默认为空格 end: 每一次打印的结尾,默认为换行符 flush: 立即把内容输出到流文件,不作缓存 2,hash:获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值。 3,id():用于获取对象的内存地址 4,callable:函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功 5,dir():函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。 6,range:函数可创建一个整数对象,一般用在 for 循环中。 7,next:内部实际使用了__next__方法,返回迭代器的下一个项目。 8,iter:函数用来生成迭代器(讲一个可迭代对象,生成迭代器)。 9,bool :用于将给定参数转换为布尔类型,如果没有参数,返回 False。 10,int:函数用于将一个字符串或数字转换为整型。 11,float:函数用于将整数和字符串转换成浮点数。 12,abs:函数返回数字的绝对值。 13,divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。 print(divmod(7,2)) # (3, 1) 14,round:保留浮点数的小数位数,默认保留整数。 print(round(7/3,2)) # 2.33 15,pow:求x**y次幂。(三个参数为x**y的结果对z取余) 16,sum:对可迭代对象进行求和计算(可设置初始值)。 17,min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。 18,max:返回可迭代对象的最大值(可加key,key为函数名,通过函数的规则,返回最大值)。 19,list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。 20,tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。 21,reversed:将一个序列翻转,并返回此翻转序列的迭代器。 22,str:将数据转化成字符串。 s = 'abc' print(bytes(s,encoding='utf-8')) 23,repr:返回一个对象的string形式(原形毕露) print(repr('{"name":"alex"}')) ---# '{"name":"alex"}' 24,dict:创建一个字典。 25,set:创建一个集合。 26,frozenset:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。 27,len:返回一个对象中元素的个数。 28,sorted:对所有可迭代的对象进行排序操作。 29,enumerate:枚举,返回一个枚举对象。 30,all:可迭代对象中,全都是True才是True 31,any:可迭代对象中,有一个True 就是True 32,zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。 33,zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。 a = [1,2,3] b = ['a','b','c',2] print(list(zip(a,b))) 34,filter 过滤 通过你的函数,过滤一个可迭代对象,返回的是True 35,map:会根据提供的函数对指定序列做映射。 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) map object 36,exec() 37,reduce()
04 装饰器
标准装饰器 @XXXX # warpper = XXXX(warpper) def warpper(f): def inner(*args,**kwargs): '''执行被装饰函数之前的操作''' ret = f(*args,**kwargs) return ret return inner warpper()
#装饰器:本质也是闭包,而且装饰器也是个函数而已
# 作用:在不改变原函数调用方式上,给原函数增加了额外功能,比如登录验证,写日志,执行效率等等
# 对拓展是开放的:
#我们说,任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改。所以我们必须允许代码扩展、添加新功能
# 对修改是封闭的:
#就像我们刚刚提到的,因为我们写的一个函数,很有可能已经交付给其他人使用了,如果这个时候我们对其进行了修改,很有可能影响其他已经在使用该函数的用户。装饰器完美的遵循了这个开放封闭原则
05 递归函数(了解)

浙公网安备 33010602011771号