标签: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来安装所有的库包
标签:img 描述 解释器 stack pip 不能 下标 ring split
原文地址:https://www.cnblogs.com/Durant0420/p/14464820.html