python常用数据类型—字符串类型
一.python的默认编码格式是ascII编码类型,所以要进行中文的操作,就要申明支持中文的字符集,常用的是utf-8。在程序中可以这样进行申明,#coding=utf-8
二.len之需注意
看下面的示例:
>>>a = 'abc'
>>>len(a)
3
>>>b = '哈哈哈'
>>>len(b)
9
这就是编码的效果了,python默认的是ascii编码,那怎么样才能支持中文呢?
>>> c = u'哈哈哈哈'
>>> len(c)
4
前面的u代表的就是utf-8的编码,还可以这样进行转变:
>>> g = b.decode('utf-8')
>>> g
u'\u54c8\u54c8\u54c8'
>>> len(g)
3
如果在文件中想要正确的得出字符串的长度,那么代码应该这么书写
#coding=utf-8
a = '哈哈'.decode('utf-8')
print len(a)
三.转义符让文本更好处理
要转义的字符前面加个反斜杠
例子:如果要在屏幕上打印abcd’,那么后面的’会被认为是结束符,有两个结束符,所以报错,那怎么打印呢?
第一种方法:
print"abcd'"
abcd'
第二种方法,使用转义字符:
>>>print 'abcd\''
abcd'
四.字符串前面跟着的小尾巴到底是什么东西?
不要进行转义:
例子:比如就是要打印\n,怎么办?可以在前面加上r,表示该字符串不进行转义。
>>> c =r'\n'
>>>print c
\n
五.访问子字符串,序列来了。
成员有是有序排列的,可以通过下标偏移量访问到它的一个或者多个成员
如何访问字符串的最后一个字符?
>>>a = 'abcde'
>>>a[-1]
'e'
切片的使用:
>>>a[2:3]
'c'
从上面的显示结果来看:切片是包头不包尾
六.替换字符串replace
>>>a = "abcabc"
>>>a.replace('a','1')
'1bc1bc'
>>>a.replace('a','1',2)
'1bc1bc'
>>>a.replace('a','1',1)
'1bcabc'
可以把子串替换为另一个子串,但是a的值是不变的,因为字符串是不可变类型。方法最后面的数字代表的是替换的个数。
七.字符串拼接
1. 超级丑陋之千万别用。
>>>a = 'abc'
>>>b = 'def'
>>>print a+b
abcdef
上面的字符串拼接虽然是最直观的方法,但是在底层又创建了一个新的长的对象,所以这样是十分消耗内存的,所以不推荐使用。
2. 可选方案之字符串模板
>>>print 'my name is %s' % 'dongdong'
my name is dongdong
上面的%s表示的是占位符,用%后面的对象所替代
还可以使用元组的概念,代替多个
>>> print 'my name is %s,%dyears old!'%('dongdong',22)
my name is dongdong,22 years old!
3. 优秀的拼接方案
>>> a = 'abc'
>>> b = 'def'
>>> c = 'ghi'
>>> "".join([a,b,c])
'abcdefghi'
这种字符串拼接的效率较高。
八.读写文本来了
打开文件,使用open
>>>f = open('f.txt','w')
>>>f.write('hello\nmy name is zhangdongdong')
>>> f.close()
后面的w表示的是写方式打开
当操作完,记得关闭文件
>>>f = open('f.txt','r')
>>>f.readline()
'hello\n'
>>>f.readline()
'my nameis zhangdongdong'
>>>f.seek(0)---表示把游标置顶
>>>f.read()
'hello\nmyname is zhangdongdong'
>>> f.close()
九、今天习题:
1.字符串:a ='abcd'
用2个方法取出字母d
>>> a = "abcd"
>>> a[-1]
'd'
>>> a[3]
'd'
2.a = 'jay'
b = 'python'
用字符串拼接的方法输出:
my name is jay,ilove python.
>>> a = 'jay'
>>> b = 'python'
>>> print 'my name is %s,i love %s'%(a,b)
my name is jay,i love python