调用模块的两种方式:
#方式1
from decimal import Decimal
Decimal('1.00') #方式2
import decimal
decimal.Decimal('1.00')
分数与小数间的转换
#小数转换分数
(2.5).as_integer_ratio()
#有时候转换出来的分数的分子分母都很大,可以通过限制最大分母值来控制
x=Fraction(1,3)
a=float(x)
c=Fraction(1,3)
c.limit_denominator(10) #分数转换小数
x=Fraction(1,3)
float(x)
利用集合和列表过滤重复项
#原始列表
L=[1,2,1,2,3,4,3,5]
#利用集合过滤
S=set(L)
#还原为列表
L=list(S)
Python的变量就是在特定的时间引用了一个特定的对象
关于共享引用和在原处修改
#共享引用
L1=[1,2,3]
L2=L1 #在原处更改,即将变量L2赋值给列表对象,改变L1引用的原对象的值
L1=[1,2,3]
L2=L1[:] #利用分片技术复制
L1[0]=24
L==M 测试两个被引用的对象是否有相同的值
L is M 检查对象的同一性
利用raw字符和转移字符打开文件
#错误的书写
myfile=open('C:\new\text.dat','w') #\n被识别为换行符,\t识别为制表符 #利用raw字符
#当r(或者R)出现在字符串第一个引号前时,他将关闭转义机制
myfile=open(r'C:\new\text.dat','w') #利用转义字符
myfile=open('C:\\new\\text.dat','w')
分片S[i:j]提取字符串:
——上边界并不包含在内
——分片的边界默认为0和序列的长度,如果没有给出的话
——S[1:3]分片获取从偏移为1的元素直到但不包括偏移为3的元素
——S[1:]分片获取从偏移为1的元素到序列末尾的之间的元素
——S[:3]分片获取从偏移为0的元素直到但不包括偏移为3的元素
——S[:-1]分片获取从偏移为0的元素直到但不包括最后1个元素
——S[:]实现顶层S拷贝
完整形式的分片S[i:j:k],含义是:索引S对象中的元素,从偏移为i到偏移为j-1,每隔k元素索引1次,当k为负数时,分片从右至左,此时两个边界的意义发生的对调
#利用分片反转字符串
str='hello'
str1=str[::-1]
数字与字符串之间的转换:int函数将字符串转换成数字,str函数将数字转换成字符串表达式
字符串和ASCII码之间的转换:ord函数将字符串转换成ASCII码,chr函数将ASCII码转换成字符串
字符串方法实例之修改字符串
#分片合并法
S='aabbcc'
S=S[:2]+'mm'+S[4:]
#replace法
S='aabbcc'
S=S.replace('bb','mm']
#列表+join法
S='aabbcc'
L=list(S)
L[2]='m'
L[3]='m'
S=''.join(L) #join的作用就是将列表字符串连接在一起用分隔符隔开,.号前面的字符就是分隔符
字符串方法实例之文本解析
#分片法
S='aaa,bbb,ccc'
S1=S[:3]
S2=S[4:7]
S3=S[8:]
#split法
S='aaa,bbb,ccc'
S.split(',')
字符串格式表达式
格式化字符串:
1.在%操作符的左侧放置一个需要格式化的字符串,这个字符串带有一个或者多个嵌入的转换目标,都已%开头;
2.在%操作符的右侧放置一个(或多个,嵌入到元组中)对象,这些对象都会插入左侧想让Python进行格式化字符串的一个(或多个)转换目标的位置上去。
高级字符串表达式应用实例
#左对齐格式化与补零格式化
x=1234
res="integers:...%6d...%-6d...%06d" % (x,x,x)
#%6d补齐6位,右对齐;%-6d补齐6位,左对齐;%06d用0补齐6位
#浮点数的对齐、补零以及添加正负号
x=1.234567
'%-6.2f|%05.2f|%+6.1f' % (x,x,x)
#可以在格式化字符串中用*来指定通过计算得出的宽度以及精度
x=1/3
'%f,%.2f,%*.*f' %(x,x,8,5,x)
基于字典的字符串格式化
#示例1
'%(n)d %(x)s' % {"n":1,"s":"spam"}
#示例2
str="今天是%(x)s%(n)d"
value={"x":"星期","n":1}
str % value
#示例3
x="星期"
n=1
"今天是%(x)s%(n)d" % vars()
#vars()为内置函数,返回的字典包含了所有本函数在调用时存在的变量
字符串格式化调用方法
#示例1
str='{0},{1},{2}'
str.format('a','b','c')
#示例2
str='{a},{b},{c}'
str.format(a='a1',b='b1',c='c1')
注意:原字符串str不可变,如果使用格式化后的字符串,要将其保存在另一个变量中