1.字符串
①编码格式
UTF-8是国际通用的编码,以一个字节表示英语字符(兼容ASCII),以三个字节表示中文及其他语言,对所有国家需要使用的字符进行了编码。
GB2312/GBK是我国制定的中文编码标准,使用一个字节表示英语,两个字节表示中文。
CP936是微软公司在GBK基础上开发的编码方式。
Unicode是不同编码风格之间相互转换的基础。
可以用显式声明编码格式:
#coding=utf-8
#coding:GBK
#-*-coding:utf-8-*-
#Python3.x默认编码为UTF-8
②Python版本对中文的支持不同
Python2.x对中文支持不够,因此需要在不同编码之间转换;Python3.x完全支持中文,包括变量。
③字符串属于不可变序列类型,使用单引号、双引号、三单引号或三双引号作为界定符,并且不同界定符之间可以相互嵌套。字符串可以有常见的序列通用方法(包括比较,计算长度,元素访问,分片)以及特有的操作(格式化操作,字符串查找,字符串替换等),但字符串属于不可变序列,即不能修改原有字符串,但是可以通过replace()、translate()方法来修改字符串(变成新的字符串)然后赋值给变量。
a)字符串驻留机制:
短字符串有驻留机制,长字符串不符合
a='1234'
b='1234'
id(a)==id(b) #True
a=a*50
b=b*50
id(a)==id(b) #False
在Python2.x中字符串有str和unicode两种格式,其基类都是basestring,在Python3.x中只有str类型,字符串对象不再支持decode()方法
#Python 2.x中字符串
type('中国')
<type 'str'>
type('中国'.decode('gbk'))
<type 'unicode'>
#Python 3.x中字符
type('中国')
<type 'str'>
type('中国'.encode('gbk'))
<class 'bytes'>
④字符串格式化
格式:
'% [-] [+] [0] [m] [.n] 格式字符'% x
#第一个%:格式标志,表示格式开始
#第一个中括号:指定左对齐输出
#第二个中括号:对正数加+号
#第三个中括号:指定空位填0
#第四个中括号:指定最小宽度
#第五个中括号:指定精度
#格式字符:指定类型,见下表
#第二个%号:格式运算符
#x:带转换的表达式
#格式字符有
%s #字符串(采用str()的显示)
%r #字符串(采用rper()的显示)
%c #表示单个字符
%%