字符串认知与应用
认知1.字符串概念
认知2.ascii unicode utf8到底是啥
一. len之需注意
a=”哈哈哈我是中国人”
len(a) 为24 因为这里的len计算的是ascii码 而中文不属于这个范围内 想要计算必须转换 如
a=u”哈” len(a)=1
或者g=a.decode(‘utf-8’) len(g)=1
有的软件不用转化代码、
二.转义符让文本更好处理
要转义的字符前面加个反斜杠
a=”sfsfsf\a’”只有这样的转义符才能识别出来单引号 属于字符串
三字符串前面跟着的小尾巴到底是什么东西
u”sdfsgsg”代表转换为utf-8码
r”sfgsgs\n”代表不用转义里面的转义字符\
四访问子字符串,序列来了。
a=”asdfg”
取a字符串的第一个元素 a[0]=a
a[1]=s
和列表的取法是一样的。
成员有是有序排列的,可以通过下标偏移量访问到它的一个或者向个成员
五.替换字符串
a.replace(‘old’,’new’)一定要加引号换一个元素里面相同的元素都在换。
a=”fsfgsfs”
a.replace(‘f’,’ccc’) 结果中f全变成ccc了 并且 如果全都赋值给另一个变量b则赋值成功,但是如果还是要输出a则没有变化,因为a是字符串 是不可变的变量。
五.二分割字符串
s ="i,am,lilei" 只要提取am则用下面方法可以
1 s[2:4] 类似与列表的切片方法
2 s.split(‘,’)[1] 指的是按逗号分割的第2个部分(【1】)
3 这里和join相比较一个是可以自定义分割字符串一个事自定义连接字符串。
六.字符串拼接
1.超级丑陋之千万别用。a+b+c不能用加法虽然可行但是特别耗内存
2.可选方案之字符串模板
"myname is %s "%"lilei" 红色表示在%s (占位符)插入字符串然后通过%链接
%s字符串占位符
%d数字占位符
"my name %sis %s " %(lilei,ten years old)如果是多个对应关系就得用元组()来表示一一对应关系。
3.优秀的拼接方案
a="asd"
b="zxc"
c="qwe"
"".join([a,b,c])
“”里面若加分隔符比如“”,“,”,“|”等都可以把拼接出来的字符串分割想要的类型
七.读写文本来了
三种方式
w:write
r:read
a:append
a= open(r'C:\Users\杨明\Desktop\a.test','w')
a.write('i am hanmeimei\ndfsd') 前三部都是先写文件(原来没有)
a.close()
a=open('a.test','r')
print(a.read()) 后两部才是读文件
输出后 用a.seek(0)可以回到第0行开始读 否则读完之后将不会在读出来
做题笔记
可以把一个文档的文件都出来都出来就相当于一个长的字符串
a=open(r'C:\Users\杨明\Desktop\test.txt','w')
a.write("\n____________\n2012来了\n2012不是世界末日。\n2012欢乐多。\n_____________\n\n")
a.close()
a=open(r'C:\Users\杨明\Desktop\test.txt','r')
b=a.read()
print(b.replace('2012','2013'))
然后就能在文档中使用字符串的修改方法