python常用功能
2021-06-09 00:03
标签:img 描述 解释器 stack pip 不能 下标 ring split .1. 异常 l 捕获异常 try : …. except (Ex1,Ex2) as e: -捕获异常Ex1,Ex2(也可以使用Except捕获所有类型的异常)等,并把捕获到的异常错误赋值给变量e; …..print(e) else: 无异常执行 finally: 无论异常与否,都执行 l 主动抛出异常 raise 异常名称(“异常描述”) 异常名称:可以是python内建异常,或用户自定义异常,也可以直接用Exception代表异常 .2. 格式化字符串 l f替换具体变量 str = f’user…{user}…{name}’ --其中{user}/{name}会替换成具体变量值 l %格式化 #格式化变量 “zaff%s中国%d” % (‘path’,’23’) --格式符号进行格式化,使用%格式符对字符串格式化 #格式化字典 “我今天%(food)s,xxx%{poket}f” %(params) ----其中params是字典params={“food”:”面板”,“poket”:16.9} l 使用format格式化 “我是{0}还是{1}”.format(x1,x2) -其中{0}是x1,{1}是x2 注:位置索引可以直接使用{},根据format先后顺序进行格式化 ”我正在学习{language}”.format(lanugae=”python”) ”我正在学习{ food }”.format(**params) --其中params为字典,**展开形式为”food”=面板,”poket”=16.9 ”我正在学习{ 0[0]},{1[0]}”.format(my_list,my_list1) --其中my_list为列表,{0[0]}代表my_list的第一个元素,{1[0]}代表my_list1的第一个元素 l 格式化带占位符的变量 s = ‘今天%(food)s号码’ t = s % (params) .3. 字符串解码 l str.encode(字符串)/字符串.encode() --编码为二进制 l 二进制.decode()/bytes.decode(二进制) --二进制解码成字符串 .4. print print(*args,seq=’’,end=’\n’,file=sys.stdout,flush=False) *args:print可以同时输出多个内容,使用逗号分隔 seq:分隔符,默认空格 end:输出结束时补充该参数所指定的字符串,默认换行 file:定义输出流,默认标准输出;也可以指定文件输出流 flush:是否立即把内容输出到流文件,默认不做缓冲 返回结果:返回相应的输出结果 .5. 排序 只能对列表进行排序 list.sort(key=None,reverse=False) 列表自带的sort方法排序后会改变原始列表的顺序 sorted(iterable,key=None,reverse=False) 不改变iterable顺序,返回一个新的对象 reverse:False升序,True降序 iterable:可迭代对象,用于排序的可迭代对象 key:接收一个函数,该函数将在每个元素比较前调用,该函数作用于排序列表中的每一个值,即列表元素都先调用key函数后得到的值来进行排序,输出的是原始值;该函数只有一个参数,返回一个值来参与比较 ;如果不传key,默认使用第一个元素排序 key=函数,此函数可以是系统自带的函数/用户定义的函数/lambda函数 注:key=str.lower,其中可以直接调用函数,参数不用传,默认为列表元素; 例如:sorted(iterable,key=len(x)):序列中的每个元素调用len(x)函数后得到长度,然后以长度排序,最后的结果是按元素长度由短到长排序 l 列表中包含元组或字典排序 str1 = [(“x1”,”x2”),(…)] str2 = [{‘name’:12,’age’:23},{…}] sorted(str1,key=lambda x :x[0]) --x[0]即元组的第一个元素 sorted(str2,key = lambda x : x[‘name’]) --按字典的name值排序 l 字典排序 字典不是可迭代对象,只能转换成list去排序,dict.keys(),dict.items()为key和value的tuplue对象 str2 = {‘name’:12,’age’:23} sorted(str2.keys()) --按key值进行排序,返回key的列表 s = sorted(str2.items(),lambda x : x[0]) --str2.items返回[(name,12),(age,23)],对元组第一个元素排序 s排序后是list类型,再dict(s)转换成字典就可以了 l 忽略大小写排序 sorted(str1,key=str.lower) 或sorted(str1,key=lambda x :str.lower(x)) 直接调用函数,参数可以不用传,默认为参数列表元素 .6. 数据转换 l int(x) 字符串或数字转整形 l long(x) 字符串或数字转长整形 l float(x) 字符串或数字转浮点型 l str(x) 转字符串,原样内容加双引号 l tuple(s) 将s序列转元组,s序列(list&set&字典);字典会返回key组合 l list(s) 将s字符串转列表(每字符转成一个列表元素);s也可以是元组 l chr(x) 将整数转换成一个字符 l set(s) 将序列转集合 l map(function,iterable,..) :function函数,iterable一个或多个序列;根据提供的函数对指定序列做映射,返回迭代器;第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。 l 列表转字典1 list = [[‘key’,’value’], [‘key1’,’valu1e’]]或[(‘key’,’value’),(‘key1’,’value1’)] dict(list) ---{‘key’:’value’,’key1’:’value2’} l 列表转字典2 list1 = [‘key’,’key1’] list2 = [‘value1’,’value2’] dict(zip(list1,list2)) l 列表内容转字符串 ‘’.join(list) 返回指定字符连接序列中元素后生成的新字符串 s = [‘a’,’1’,’3’] ‘’.join(s) ---返回’a13’ ‘bc’.join(s) --返回’abc1bc3’ 注:join方法需要保证序列中的元素都是字符,否则会报错,可以使用‘bc‘.join(str(x) for x in s),先列表元素转换成字符 l 字典key,value互转 {value:key for key,value in dict.items()} l 字符串转list或字典 #split函数,string按分隔方式转list s.split("分割标示符号"[分割次数]) “sdbf,sdf,sdf ”.split(“,”) --返回[“sdbf”,”sdf”,”sdf”] #字符串所有字符直接转list s = ‘aabc’ list(s) ---[‘a’,’a’,’b’,’c’] #使用eval函数去掉字符串外面的双引号 s1 = “{‘name’:’tom’}” eval(s) ---{‘name’:’tom’} .7. eval返回表达式结果 https://blog.csdn.net/Together_CZ/article/details/72640276 eval(express,globals=None,local=None): 返回表达式结果,相当于去掉字符串,再计算结果 express:为参与计算的python表达式,可以是str类型 globals:字典对象 locals:map对象 查找顺序,先查找locals参数,再查找globals是否存在变量,再计算 注:python全局变量存在globals()对象中,局部变量存在locals()对象中,可以打印;globals()对象的值可以修改,locals()对象的值不能修改 globals()[key]=2 --修改全局变量key的值 locals()[key] = 2 --修改局部变量key值不生效 eval主要用于去掉外层双引号 l eval用于字符串对象和list\dict之间转换 l = ‘[1,2,3,4]’ eval(l) --返回[1,2,3,4],list类型 l 计算 eval(‘1+1’) --返回1+1的计算结果 l 配合globals和locals age =10 --局部变量 name = 1 --全部变量 def f(): age = 18 --局部变量 eval(“{‘name’:name,’age’:age}”) --{‘name’:1,’age’:18}},先去掉字符串双引号,再变量表达式计算,先查局部变量,再查找全局变量 eval(同上,{‘age’:123,’name’:xxx},{….}) --local和globals参数同时存在,先找local参数中->globals参数中 eval(同上,{‘age’:123,’name’:xxx}) -只存在globlas,只在globals参数中查找 注:eval可以替换成ast.literal_eval ,更安全些 执行储存在字符串或文件中的python语句,与eval更复杂 .8. 随机数 l random.choice(seq) 从序列中随机返回一个元素,seq:序列,字符串也是序列,是特殊序列 l random.sample(seq,k) 从序列中随机取k个元素组成新序列,seq个数必须大于k,否则会出错 l random.random() 返回0~1之间的随机数 l random.unifrom(x,y) 返回x~y之间的随机浮点数 l random.randint(a,b) 返回a~b之间的随机整数 l random.randrange(start,stop,[step]) 输出start到stop-1之间的随机元素,可设置步长,如:randrange(1,6,2),则在[1,3,5]中随机返回一个元素 l random.seed([x]) 设置种子,种子相同,每次获取的随机数相同,不同种子,获取的随机数不同 random.seed(10) random.random() --多次调用该方法返回的随机数相同 .1. 迭代对象相关方法 l all(iterable) 判断可迭代对象中的所有元素是否都为true,有一个False返回False 注:空列表、空元组返回true l any(iterable) 与all相反,判断可迭代对象中的所有元素是否都为False,全False返回true l enumerate(iterable,[start]) 遍历可迭代对象,返回(下标,元素);start为开始遍历的下标 for I in enumerate(tup) print(i) --其中i为(0,第一个元素值) 或for i,k in enumerate(tup) print(I,k) --其中i为小标,k为值 属性相关操作 l dir(object) 返回指定对象的所有属性和方法,不传返回当前模块的 l hasattr(object,attr) 判断对象是否包含对应的属性 l delattr(object,attr) 删除属性 l setattr(object,attr,value) 指定对象设置属性值 l getattr(object,attr,[default]) 获取对象的属性值,如不存在,返回default repr(object) 将对象转换为共解释器读取的形式 filter(序列通过指定函数来过滤序列) 用于过滤序列,过滤掉不符合条件的元素,返回迭代器对象;如果要转换为列表,使用list()来转换;第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数,最后将返回return值为True(非0)的元素放到迭代器中 filter(function,iterable) def show(x): if x>5 return True else: return False result = filter(show,range(10)) --返回迭代器 list(result) --返回[6,7,8,9] map(每个元素执行同一个函数) map(function,iterable…) 将序列中的每个元素都执行同一个function函数,返回函数执行结果集的迭代器 获取当前运行类和函数名称 l 函数内部获取当前函数名称 sys._getframe().f_code.co_name 或者使用inspect模块,inspect.stack()[1][3] l 类中获取类名称 slef.__class__.__name__ l 类中获取方法名称 sys._getframe().f_code.co_name 或者使用inspect模块,inspect.stack()[1][3] l var = va1 if condition else va2 如果if为真,var=va1,否则var=va2,其中va1和va2是表达式 l c = a>b and a or b 表达式真则:1 and a or b = a 表达式假则:0 and a or b = b 示列: x1 and x2 : x1为假,直接判断为假,返回0;x1为真,返回x2 x1 or x2 : x1为真,直接返回x1;x1为假,返回x2 l c = [b,a][a>b] a> b的判断结果1代表真,0代表假;c返回[b,a]列表对应索引(0或1)的值 示列:c = [3,4][3>5] 其中3>5返回1,则c的值为索引为1的值 in:在指定序列中找到值 is:判断两个标识符是不是引用一个对象 l a in [1,3,5] --指定序列中是否有a l ‘xx’ in ‘2323xsdsd’ --指定字符串序列中是否有字串xx l x is y --类似id(x)==id(y) python项目移植到其他环境时,往往需要重新安装所需的第三方包,比较繁琐,可以在python项目中使用pip freeze>requirements.txt,在项目目录生成requrements.txt文件,该文件包含所有库包 在新环境可以使用pip install -r requirements.txt来安装所有的库包 python常用功能 标签:img 描述 解释器 stack pip 不能 下标 ring split 原文地址:https://www.cnblogs.com/Durant0420/p/14464820.htmll 常用的功能
.5.1. 列表自带的list.sort排序方法
.5.2. 系统自带的sorted方法(可迭代对象排序)
.5.3. 参数说明
.5.4. 示列
.6.1. 普通类型转换
.6.2. 列表、字典、字符串互转
.7.1. 使用场景
.7.2. exec(object,globals,locals)
.1 行表达式
.2 in/is用法
.3 python项目依赖包管理(requrements.txt)