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.'