UTF-8编码
如果文本基本上全部是英文,用 Unicode 编码比 ASCII编码需要多一倍的存储空间,在存储和传输上很不划算,因此又出现把Unicode编码转化为可变长编码的UTF-8编码。可以把Unicode字符根据不同的数字大小编码成1-6个字节,节省了存储空间,加快了数据传输。
Python的字符串
对于单个字符的编码,可以用函数
ord
()获取整数的表示方法,用函数
chr()
把编码对应字符转换出来。
![](https://i-blog.csdnimg.cn/blog_migrate/bbc267b5cc28a4d1ec0cd594ce3d36f1.png)
对 bytes 类型的数据用带b前缀的单引号或双引号表示,例如x=b’ABC’。
Unicode
表示的字符串通过
encode()
方法可以编码为指定的
bytes
。
![](https://i-blog.csdnimg.cn/blog_migrate/ca59aa3388a2a7edb496dd62915079e7.png)
相反地,如果要将
bytes
变为字符串,可以用
decode(),
具体使用方法如下,
![](https://i-blog.csdnimg.cn/blog_migrate/a1a3e7b509ddc9db35201c9d7fc56424.png)
len()
函数计算的是字符串的字符数,如果换成
bytes
,
len()
函数就计算字节数。
![](https://i-blog.csdnimg.cn/blog_migrate/ae51d44d1db447dd6839ca7d2e72e1dd.png)
保存源代码时,务必指定保存为 UTF-8 编码。当Python 解释器读取源代码时,为了让它按 UTF-8 编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序(Windows 系统会忽略这个注释)。
第二行注释是为了告诉
Python
解释器,按照
UTF-8
编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
格式化
%运算符用来格式化字符串。
%s
用字符串替换(
%s
会把任何数据类型转换为字符串)。
%d
为整数。
%f
为浮点数。
%x
为十六进制整数。
![](https://i-blog.csdnimg.cn/blog_migrate/345a263a6ac62260d5c4cae8835722b9.png)
#后面跟着的值或者变量顺序需要对应好。
格式化整数和浮点数可以指定是否补
0
与小数的位数。
![](https://i-blog.csdnimg.cn/blog_migrate/7f2c8ca7b14137e2b3574a2be9e9c03b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/8c613e813a2d4a442bc284f6c0b7c308.png)
#
将下图两个比较可以发现
%2d
前面空了一个位子。可见输出如果不足两位数字会在
5
前面补上一个空。
![](https://i-blog.csdnimg.cn/blog_migrate/6a092637abdd5e80926ac4d74a575967.png)