字符串,编码与格式化

python字符编码:
ASCII编码:

计算机是美国人发明的,所以字符串只有数字,英文字母和特殊字符,一共有127个字符被编码在计算机里,这个编码表被称为ASCII编码。这种编码存储字符只用了一个byte即8bit.

Unicode(万国码,统一编码):

但要存储全世界的字符1byte是绝对不够的。这时unicode编码应运而生,最常用的是用2byte表示一个字符.

UTF-8编码(可变长编码):

使用Unicode虽然解决了乱码问题,但是如果文本都是英文,这样存储太浪费空间且传输时也很浪费带宽。所以为了解决这个问题UTF-8编码应运而生。这种方式是把Unicode编码转换成UTF-8编码。英文占用1byte,汉字占用3byte,很生僻的字才用4-6byte. 实际上ASCII码可以看作UTF-8的一部分。

字符和编码之前的转换:
python可以使用函数ord()获取字符的Unicode编码(整数表示),用函数chr()获取Unicode编码对应的字符。
>>> ord('磊')
30922
>>> chr(30922)
'磊'

python字符串:
计算str包含多少字符-len()
>>> len('刘磊')
2
>>> len('ABC')
3

格式化:
如何输出格式化的字符串。我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'之类的字符串,而xxx的内容都是根据变量变化的,所以,需要一种简便的格式化字符串的方式。
如果只有一个%参数,后面的()可以省略
>>> 'Hello, %s' %'world'
'Hello, world'
如果有多个 %参数,后面要要带()
>>> 'Hi,%s,you have $%d' %('liulei',100)
'Hi,liulei,you have $100'

常见的占位符有:
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

其中,格式华整数和浮点数还可以指定是否补0和整数与小数的位数
>>> '%3d-%05d' %(3,1) 其中%3d意思是用3位表示数字,不足位用空格代替,%05d意思是用5位表示数字,不足位用0代替。
' 3-00001'
>>> '%.2f' %3.14159265 %.2f意思是浮点数用2位小数表示。
'3.14'

 

posted on 2017-06-03 20:05  Dev-Ops  阅读(273)  评论(0编辑  收藏  举报

导航