字符串

r''...''内部的字符串默认不转义

Python允许用'''...'''的格式表示多行内容 在输入多行内容时,提示符由>>>变为......是提示符,你可以接着上一行输入

ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

Python对bytes类型的数据用带b前缀的单引号或双引号表示:、

x = b'ABC'

以Unicode表示的str通过encode()方法可以编码为指定的bytes

>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\\\\xe4\\\\xb8\\\\xad\\\\xe6\\\\x96\\\\x87'

我们从网络或磁盘上读取字节流时读到的数据是bytes。用decode把bytes变为str`

>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\\\\xe4\\\\xb8\\\\xad\\\\xe6\\\\x96\\\\x87'.decode('utf-8')
'中文'

如果bytes中包含无法解码的字节,decode()方法会报错: 但如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节

>>> b'\\\\xe4\\\\xb8\\\\xad\\\\xff'.decode('utf-8', errors='ignore')
'中' // 0xff is invalid 'utf-8' start byte

len()函数计算str包含多少个字符 或 bytes包含多少个字节

>>> len(b'ABC')
3
>>> len('中文'.encode('utf-8'))
6

当源代码包含中文的时候,务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3 // windows会忽略该注释
# -*- coding: utf-8 -*-

同时必须确保文本编辑器正在使用UTF-8 without BOM编码

格式化

与C语言基本相同

>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'