环境小硕的转化之路-17-内置函数拾遗
Posted negu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环境小硕的转化之路-17-内置函数拾遗相关的知识,希望对你有一定的参考价值。
前言
之前写过内置函数的博文,但觉得这个老师讲的更详细一点,分类也更清楚一点。 将一些常用的内置函数po出来。
内部储存函数相关
lst = [1,2,3] #id(obj) print(id(lst))#打印id #hash(obj) print(hash(lst))#目的是为了存储,计算之后是一个数字.hash值尽量不要重复(某些特定环境下会重复), 是一种另类的加密.所以hash值往往很大。字典就是用hash法进行存储数据的。 #打个比方 dict = {‘jay‘:‘周董‘,‘jj‘:‘林俊杰‘}#字典的key必须是hashable(不可变) #字典存储原理‘jay‘算完的存储hash值假设是6,将‘周董‘存到6的下属的内存空间里。查找的时候dict[‘jay‘] #去找6下属的内存空间取出‘周董‘。如果不这么存的话要遍历内存去找,浪费时间。但字典比较浪费空间,一般用于拿空间换时间。 #__import__(‘module‘) __import__(‘os‘)#用于动态加载模块,例如用户输入某个值,可以加载模块的时候用
进制转换相关
#二进制转换 print(bin(5))#0b101 0b表示这个数为二进制 #银行放款高级架构流程 #注册 实名认证 银行卡绑定 风险评估 # 1 1 1 1 #全部通过,可以放款 # 1 1 0 1 #没绑定银行卡不能放款 #八进制转换 print(oct(10))#0o12 0o代表八进制 #十六进制转换 print(hex(20))#0x14 0x代表十六进制 0123456789abcdef为十六进制的‘个位数‘。做单片机的人用的比较多。
数学运算相关
#abs(num)求绝对值 print(abs(-8))#8 #divmod(num,num)->输出(商,余数)(前面除以后面) print(divmod(10,3))#(3,1) #round (float)四舍五入 print(round(3.5))#4 #pow(x,y,z) 求次幂 x为底数,y为幂数,如果有z,输出为结果对z取余。 print(pow(2,4))#16 print(pow(2,4,3))#1 #sum sum(Iterable,初始值) 可迭代对象里的数字+初始值qiu, print(sum([1,2,3,4,5],1))#16 #min(iterable) print(min([5,6,7,8,9,10,11]))#iterable中数字的最小值 #max(iterable) print(max([5,6,7,8,9,10,11]))#iterable中数字的最大值
可迭代对象相关
#reversed(iterable)将可迭代对象翻转 lst = [1,2,3,4,5,6,7,8,9,10] print(list(reversed(lst)))#返回一个新的迭代器 #slice(num(初始),num(结尾),num(步长)) s = slice(1,9,2)#切片 print(lst[s])#相当于lst[1:9:2] #enumerate(iterable)枚举 for i,v in enumerate(lst): print(‘索引值{0},列表值{1}‘.format(i,v)) #all(iterable) 相当于and,iterable里面全对输出True print(all([1,1,1,1,1,1])) #any(iterable) 相当于or,iterable里面只要有一个对输出True print(any([0,0,0,0,0,0,0,1]))
内存相关
#bytes(str)将数据变成字节 print(bytes(‘negu‘,encoding=‘utf-8‘)) #menoryview(obj)内存展示 s = ‘哈哈哈哈哈哈哈哈哈啊哈哈哈‘ print(memoryview(s.encode(encoding=‘utf-8‘)))#不如id #ord(str)输入字符找到字符的编码位置 print(ord(‘a‘))#97 #chr(num) ord的反函数 print(chr(97))#a #ascii(obj) 若是ascii码里面就返回ascii值,若不是就返回/u。。。。。(unicode里面的东西) print(ascii(‘林‘))#‘u6797‘
转义相关
#repr(str) #打印:我:‘哈哈哈哈哈哈哈哈哈‘ print("我:‘哈哈哈哈哈哈哈哈哈‘")#方案1 print("我:"哈哈哈哈哈哈哈哈哈"")#方案2,转义不让"作为字符串的开头或者结尾。 print(repr(‘我:‘哈哈哈哈哈哈哈哈哈‘‘))#方案3 repr作用:原样输出字符串, 在里面没用。 print(r‘你好啊 我不好 他很哈皮‘)#r后面任何东西都不会转义 #c:在字符串是转义字符的意思,例如 是换行, ,\为,", . \\为print(repr(‘我我‘))#按c语言写法应该有两个,所以repr还原了了两个.
print("我是negu")#对用户是友好的,非正式的字符串. print(repr(‘我是negu‘))#还原字符串最官方,最正版的一种方法.正式、官方的字符串. #上面没有引号,下面单独地加了引号.程序中内部存储的内容,这个是给程序员看的.但是二者是一样的,类似穿休闲装和工作装的人. #所以 print(repr(‘我是"negu‘))#只显示一个双引号,两个 #原样输出,前面加r. print(‘我叫%r‘%‘negu‘)#%r实际上调用的是repr()
输出格式化相关
#format(str,‘sth‘) 格式化不单单字符串,还有数字.对财务软件极其关键. #居中某个东西 s = ‘抽烟‘ print(s.center(20))#拉长到了20,源字符串居中 print(format(s,‘^20‘))#同上 print(format(s,‘>20‘))#拉长到20,右对齐 print(format(s,‘<20‘))#拉长到20,左对齐 #对数字进行format(以下的字符串都是置于‘sth‘位置才能生效) #‘b‘:转换成二进制 #‘c‘:转换成unicode字符 #‘d‘:十进制 #‘o‘:八进制 #‘x‘:十六进制 #‘n‘:同d #默认:同d #对浮点数进行format #‘e‘:科学计数法,默认保留6位小数 #‘0.2e‘:科学计数法,保留2位小数 #‘f‘:浮点计数法,保留6位小数. #‘0.2f‘:浮点计数法,保留2位小数 #‘0.10f‘:浮点计数法,保留10位小数 print(format(1.2345678e+10000,‘f‘))#inf表示无穷大,数值太大不做计算了. #frozenset(set)#将一个集合转化成不可变的。 s = {‘爱情公寓‘,‘爵迹‘,‘妖猫传‘,‘煎饼侠‘,‘郭德纲的电影‘} s.add(‘空天猎‘) print(s)#‘空天猎‘进去了,可变,unhashable. fs = frozenset(s) hash(fs)#没报错,hashable
打包和编译
#zip(若干iterable) lst1 = [‘beyond heaven‘,‘highCs‘,‘Game of throne medly‘] lst2 = [‘Silver screen‘,‘thomas Bergersen‘,‘2CELLOS‘] lst3 = [‘1‘,‘2‘,‘3‘] a = zip(lst1,lst2,lst3)#生成一个iterator,按照位置进行合并,若是多出来会给过掉. print(list(a)) #eval(str) s = ‘5+6‘ print(eval(s))#动态执行一个代码片段,侧重点在返回上.可能前端会发送一些字符串数据给后端,这些字符床数据就要这样执行 a = "{‘name‘:‘negu‘,‘age‘:‘18‘,‘wife‘:‘none‘}"#前台往后台发的数据为json,里面全部都为字符串.可还原为字符串、列表等。 print(eval(a)[‘name‘])#输出negu #exec(str) 全称‘execute‘,和eval一样,执行复杂的字符串代码,不返回东西.一般用于测试别人的代码. exec(‘a = 10‘) print(a)#输出10,pycharm报错信息不一定是对的(动态执行信息无法判断) #compile(resource,file name,model) 将代码编译成中间码,需要的时候再执行. #resource:动态代码片段 #filename:存放代码的文件名 #model:执行模式,1.exec:一般放些流程语句的时候,2.eval:resource只放一个求值表达式,3.resource存放的代码有交互的时候 ma = ‘for i in range(10): print(i)‘ ma1 = ‘content = input(‘请输入名字‘)‘ ma1bian = compile(ma1,‘‘,‘single‘) mabian = compile(ma,‘‘,mode = ‘exec‘) exec(mabian) exec(ma1bian) print(content)