Python基础笔记:字符串和编码
1.
当处理文本时,需要现将文本转换为文字,一个字节为8位儿,一个字节最高表示整数255(1111 1111),对应255个状态;
最为人熟知的是ASCii码,ASCii码含128个状态,满足了英文编码转换的需要,但是中文,日文,等等,如果各国编各自的难免会撞车。这是为了统一,Unicode应运而生。又因为Unicode编码浪费内存,然利用Unicode的实现形式之一UTF-8(可变长编码)来表示节省内存。
Unicode 与UTF-8 有固定的转换规则。
2.
ord()函数,获取字符的整数表示,chr()函数把编码转换为对应的字符;
len()函数计算str型的字符数,或计算bytes型的字节数。
3.
python的字符串类型是str,在内存中以Unicode表示,一个字符表示若干字节。
如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。python对bytes类型的数用带b前缀的单引号或双引号表示:x=b'ABC'
>>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87'
>>> b'ABC'.decode('ascii') 'ABC' >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文'
4.一个小程序
给定一人去年与今年的成绩,输出该生的成绩变化率。
name=input('hello!,your name:\n') s1=input('your first grade: ') s2=input('your seconde grade: ') r=(float(s2)-float(s1))/float(s1)*100 if r>0: print('Congratulations! ,your grade have improved %.1f %% this year' %r) else: print('I\'m sorry to tell you that you grade have decrease %.1f %% this year' %r)