Python基础笔记:字符串和编码

1.

当处理文本时,需要现将文本转换为文字,一个字节为8位儿,一个字节最高表示整数255(1111 1111),对应255个状态;

最为人熟知的是ASCii码,ASCii码含128个状态,满足了英文编码转换的需要,但是中文,日文,等等,如果各国编各自的难免会撞车。这是为了统一,Unicode应运而生。又因为Unicode编码浪费内存,然利用Unicode的实现形式之一UTF-8(可变长编码)来表示节省内存。

Unicode 与UTF-8 有固定的转换规则。

参考:Unicode 与ASCii 与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)

 

posted @ 2017-12-30 23:27  从前有座山,山上  阅读(158)  评论(0编辑  收藏  举报