在python中可以用r‘ 。。。’来表示字符串,内部的字符串默认不转译。
空值:空值是python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
//:除法,得到整数值
%:除法,得到余数
/:除法,得到浮点数
unicode编码
UTF-8 编码
python提供ord()函数,获取字符的整数表示,chr()函数把编码转换为对应的字符。
ord(“A”)
65ord(‘中’)
20013chr(66)
‘B’
如果知道字符的整数编码,还可以用十六进制这么写str:
‘\u4e2d\u6584’
‘中文’
两种写法等价。
由于python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要变为以字节为单位的bytes。
python对bytes类型的数据用带b前缀的单引号或双引号表示:
x = b’ABC’
'ABC’与b’ABC’两者的内容虽然显示的一样,但是前者是str,后者的每个字符都只占用一个字节。
以Unicode表示的str通过encode()方法可以编码为制定的bytes,例如:
‘ABC’.encode(‘acsii’)
b’ABC’‘中文’.encode(‘utf-8’)
b’\xe4\xb8\xad\xe6\x96\x87’
把bytes也就是从网络或磁盘读取的字节流转换为str,就需要用decode()方法:
b’ABC’.decode(‘ascii’)
‘ABC’
要计算str包含多少个字符,可以用len()函数
len(‘abc’)
3
如果len()计算的是bytes,这时len()函数就计算字节数:
len(b’abc’)
3len(b’\xe4\xb8\xad\xe6\x96\x87’)
6
没事的时候坚持RTF-8编码对str和bytes相互转换。
python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
‘# -- coding: utf-8 --’