字符串类型和编码
Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes,Python对bytes类型的数据用带b前缀的单引号或双引号表示:x =b'ABC'。
1.str和bytes的相互转化
str通过encode()方法可以编码为指定的bytes,例如:
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
bytes通过decode()方法转成str,例如:
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
2.py文件编码
在py文件第一行申明字符集编码,一般使用utf-8编码,例如:# -*- coding: utf-8 -*-
3.格式化
我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格 式化字符串的方式。
在python中使用%来实现,%运算符就是用来格式化字符串的。%s表示用字符串替换,%d表示用整数替换。%f表示用浮点数替换,%x表示用十六进制整数替换。如果有多个%,后面就要有几个值,且顺序要一致。
例如:
>>> 'Hello, %s'%'world''
Hello, world'
>>> 'Hi, %s, you have $%d.'% ('Michael',1000000)
'Hi, Michael, you have $1000000.'
4.字符串截取
(1)截取单个字符,例如 'hello world'[1] 表示截取截取字符串的第二位
'hello world'[-1]表示截取字符串从末尾往前数1位得到的字符
(2)截取多个字符串(包前不包后)
'hello world'[a:b] (a b为>0)表示截取字符串的下标为a到下标为b(不包含下标b)
'hello world'[a:-1] (a b为>0)表示截取字符串的下标为a到最后一位 (不包含最后一位)
‘hello world’[a:] 表示从下标a开始截取到最后(包含最后一位)
‘hello world’[:b] 表示从下标0开始截取到下标b(不包含b)