python中字符串和编码

字符编码

字符串也是一种数据类型,但是字符串比较特殊的是一个编码问题.

因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数据才能进行处理.

计算机将8个bit位作为一个字节(byte),最早只有127个字符被编码到计算机中,这个编码表被称为ASCII编码,但是要处理中文这些是不够的,至少需要两个字节,中国制定了GB2312编码各国都有字节的编码,多语言混合到一起就会显示乱码.
因此Unicode就应运而生.他讲说有语言统一到一套编码系统里,这样就不会有乱码.但是这对全英文文本有着浪费,这是把Unicode编码转换为”可变长编码”的UTF-8编码.

python字符串

对于单个编码python提供了ord(函数获取字符的整数表示),而chr()是把编码转换为对应的字符.

python的字符串在内存中使用Unicode表示,一个字符对应多个字节.如果要在网络上传输,或者保存到磁盘中,就要把str类型转换为bytes.采用在x=b'abc'这种方式.
而且还可以使用encode()方法来编码制定的bytes.与之对应的是decode()
如果要计算有多少字符,使用len()方法

设置utf-8编码

通常我们在文件开头加上# -*- coding: utf-8 -*-来表示文件使用的是utf-8编码

格式化

python中的格式化和c语言是一致的,用%来实现如:

>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'

%d表示整数,%f浮点数,%s表示字符串,%x表示16进制.%s总是有效的.

使用format()

使用format()来一次替换如:

>>> 'Hello, {0}, 成绩提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成绩提升了 17.1%'

猜你喜欢

转载自blog.csdn.net/liukai6/article/details/80213080