ASCII字符集包含了所有的数字和字母,编码通常为1个字节
Unicode包含了所有语言,编码通常为2个字节,比较占用空间
UTF-8时可变长编码,英文字母被编码成1个字节,汉字通常是3个字节
计算机内存中使用Unicode,传输的时候转换为UTF-8
python的字符串类型为str,表示字符,在内存中以unicode表示,需要传输的时候要把str转变为以字节为单位的bytes,python对bytes类型的数据用带b前缀的单引号或者双引号表示,比如
x = b'ABC',字符串类型为bytes,每个字符只占用一个字节
str-bytes,用encode()例如,纯英文可以用ascii,含有中文的可以用uft-8
'ABC'.encode('ascii') 输出b'ABC'
从网络或磁盘读到的字节流为bytes,变为str用decode()
len()函数计算str的字符数,和bytes的字节数,一个中文字符有3个字节
len('ABC') 3
len('中文') 2
len(b'ABC') 3
len('中文'.encode('utf-8')) 6
在操作字符串时,经常使用utf-8对str和bytes相互转换
使用%来格式化,例如
'hello,%s' % 'world'
'hi,%s,you have $%d' % ('machael',10000)
%在前面占位,%d为整数占位符,%f为浮点数占位符,%s为字符串占位符,%x为十六进制整数
占位后,用%引导输入占位的内容,用括号括起来。
可以用%s代替任何不确定的占位符
用%%表示普通字符%
也可以用format格式化,占位符